Re: K-Meleon 1.6.0 Beta Development
Posted by: JamesD
Date: September 08, 2011 07:39PM

Quote
deadlock

@JamesD
>I realize the all the names are not global ...

What on Earth are you talking about?

Just commenting on why there are so many instances of "Privilege" in the macro. I treat all variable names as global when it comes to naming them.

Re: K-Meleon 1.6.0 Beta Development
Posted by: siria
Date: September 08, 2011 08:10PM

Basically I support that guideline strongly too, it makes a lot of sense and is important to avoid bugs. So if a macro is meant for direct use in menus or buttons, I usually make sure to have its name starting with the kmm-name too. But there's a limit, I just feel that it can get "too much", regarding readability of a code. At some point it starts getting too confusing and all the (just example) privileges are dancing before my eyes like snowflakes... ;-)
Just my personal opinion of course smiling smiley And don't care much about other peoples macros, if I don't need to edit them - to each their own! Just for my own ones have decided for a compromise: to use abbreviations for 'private' helper macros and global variables, that should keep them unique enough. E.g. _OnEv_ instead of _OnEventCheck_ each time. Only for secondary macros, not the ones in the menus and buttons, and mostly not for OnEvent-variables (used in $OnLoad etc.), those get the full name.

But especially for non-global variables (like loop-counting) it's really not needed, and IMO the code gets a lot easier to understand if those are nice and short ($_page or $_nr etc.). But perhaps I'm just losing overview faster than you :-)



Edited 3 time(s). Last edit at 09/08/2011 08:33PM by siria.

Re: K-Meleon 1.6.0 Beta Development
Posted by: deadlock
Date: September 08, 2011 08:36PM

@JamesD
What would you change if you wrote a new version?

Re: K-Meleon 1.6.0 Beta Development
Posted by: JamesD
Date: September 09, 2011 12:32PM

Quote
deadlock
@JamesD
What would you change if you wrote a new version?

For troubleshooting.kmm, I would change nothing except the spelling and perhaps the resource line to use "about:mozilla". If you are asking about KM itself, then there are a couple of things.

1. In the KM macrolanguage under Special Global Variables, I would like two new items. The first would be $WindowID and the second would be $TabID. I don't care if they are integer or string. They would have a unique value for the tab and window in focus and be read only.

2. If the macrolanguage could have a sort of array system for variable names, some things could be coded better. I mean the variable names could be like $_variable[(var)] where the (var) is a positive integer variable. A reasonable upper limit to var would be OK.

I think number one is more important than number two. I hope this is what you meant. I don't want to delay things with too many requests. Than you for taking on the beta3 project.

Edit: On further reflection, I like siria's idea of the variable names for troubleshooting.kmm. I might change $_Privilege_name to $_TS_name. Have to be careful with doing this as global. The "Privilege" in the setmenu, ini file name, and resource lines should not change. If you wish, I could do this and post a new copy. That would be early next week, because I am away from home this week.



Edited 1 time(s). Last edit at 09/09/2011 01:02PM by JamesD.

Re: K-Meleon 1.6.0 Beta Development
Posted by: deadlock
Date: September 09, 2011 04:42PM

@JamesD
>For troubleshooting.kmm, I would change nothing except
>the spelling and perhaps the resource line to
>use 'about:mozilla'.

It is not a resource of troublemaking.kmm and
the spelling is already changed.

1.) You can't have read only $WindowID if you can't control
create and destroy of windows.

2.) I never read the manual. JavaScript should give you anything.

>Than you for taking on the beta3 project.
I'm only in it for my notebook.

>might change $_Privilege_name to $_TS_name.
Don't forget to add comments.
ST was selected text in main.kmm and TS is?

>I could do this and post a new copy ...
You can add it to the macro library.
It is still missing there.

Almost all installers check permissions on install.
You can rebuild the package and replace
troubleshooting.kmm with bubbleshooting.kmm.



Edited 1 time(s). Last edit at 09/09/2011 04:44PM by deadlock.

Re: K-Meleon 1.6.0 Beta Development
Posted by: JamesD
Date: September 09, 2011 08:54PM

Just replace the troubleshooting.kmm file in beta2 with the following file for beta3. Nothing else needs to change about troublshooting.
http://dl.dropbox.com/u/1522294/troubleshooting.7z

Every window opened has a handle. I assume that a tab has some ID also. I only request that when a window and/or tab gets focus, that the handle value be placed in the variables $WindowID and $TabID. The value should change each time the focus changes. They should be read only because the macro should never change the value.

The KM MacroLanguage does not have the ability to construct array variables. It would be useful to have that ability. I don't know what Javascript had to do with it.

$_TS_ as part of the variable name is just an acronym for troubleshooting.

Re: K-Meleon 1.6.0 Beta Development
Posted by: siria
Date: September 09, 2011 09:28PM

Quote
JamesD
1. In the KM macrolanguage under Special Global Variables, I would like two new items. The first would be $WindowID and the second would be $TabID. I don't care if they are integer or string. They would have a unique value for the tab and window in focus and be read only.

2. If the macrolanguage could have a sort of array system for variable names, some things could be coded better. I mean the variable names could be like $_variable[(var)] where the (var) is a positive integer variable. A reasonable upper limit to var would be OK.

Yep, both would be quite helpful smiling smiley
For example I often use one of my minimacros to "move tab to previous window". The trouble starts if there are more than 2 open windows, it's pure luck in which of the other 2 the tab lands. Then I have to call it again, so that it finally lands in the right one. Bit bothersome ;-)

Also for flexible variable names à la variable("xy"), working like the macros("xy") solution. Am just currently struggling again with a lousy and very restricted semi-workaround that goes like this:
Have predefined words in variables named $_v1, $_v2, ... $_v9
Now a function gives me a number, and I want the matching word, basically something like $_word=variab(_v.$nr)
But that doesn't exist, so must first define own macros for each number:
_SmRp_v1{$_word=$_v1;}
_SmRp_v2{$_word=$_v2;}
_SmRp_v3{$_word=$_v3;}
etc. for 0-9
And later get the $_word value with:
macros("_SmRp_".$nr);
$_sometext="blabla ".$_word." blabla";

Re: K-Meleon 1.6.0 Beta Development
Posted by: deadlock
Date: September 10, 2011 08:54AM

@JamesD

Troubleshooting.kmm
Does it create a Priviledge.ini?
Does it create a Privilege.htm?
Does it change chrome to add large-alert.png to about:mozilla?
TS is no acronym for privilege.
Why did you remove the faq link?

Window handle:
Can change while the macro is running. Same with tab IDs.

IDs:
Do you have a macro that returns the focused element?
Do you know where the focus is if you select URL Bar
and type press <tab> once?

MacroLanguage:
You can embed JavaScript.
It can construct arrays.



Edited 1 time(s). Last edit at 09/11/2011 01:05PM by deadlock.

Re: K-Meleon 1.6.0 Beta Development
Posted by: siria
Date: September 10, 2011 09:32AM

Quote
deadlock
MacroLanguage:
You can embed JavaScript.
It can construct arrays.

Great, and while you're at it, you can surely add some little helper macro to main.kmm, which hands over a composed variable name to JS and returns back again the value of that composed variable, since we have no JS experts here.
A returned length over 128 characters would be helpful, since the current injectJS returns only that limit. Thinking of something like
macro names: setvarJS("xy"."ab")
macro names: getvarJS("xy"."ab")
smiling smiley

Re: K-Meleon 1.6.0 Beta Development
Posted by: deadlock
Date: September 10, 2011 10:37AM

@siria
>you can surely add some little helper macro to main.kmm
I don't need new macros. smiling smiley

>which hands over a composed variable name
You can use temporary values in preferences
with cleanup on start of script.

>we have no JS experts here.
There are lots off JS experts here.
You can download all your scripts, samples and tutorials.

>A returned length over 128 characters would be helpful
What happens if you use longer ones?
You should split them and always check if
they succeeded or failed.

>Thinking of something like
>macro names: setvarJS('xy'.'ab')
>macro names: getvarJS('xy'.'ab')

Are you absolutely sure that no one
has done that before (...disupted)?

Re: K-Meleon 1.6.0 Beta Development
Posted by: JamesD
Date: September 10, 2011 08:35PM

Quote
deadlock
Troubleshooting.kmm
Does it create a Priviledge.ini?
Does it create a Privilege.htm?
Does it change chrome to add large-alert.png to about:mozilla?
TS is no acronym for privilege.
Why did you remove the faq link?

Does it create a Priviledge.ini? -- Yes if user has write authority to the profile. If user does not have have write authority, it does not create an ini file. The test is whether the file exists and can be read.

Does it create a Privilege.htm? -- No. In the original Priviledge system, there was a folder named Priviledge which contained both Priviledge.htm and large-alert.png. When desga2 added Priviledge to KM in beta2, he elected to place these items elsewhere. Priviledge.htm became mozilla.xhtml. It can be found by using 7zip to open C:\Program Files\K-Meleon\chrome\embed.jar\content\global\ and looking at the file called mozilla.xhtml with notepad. The reference to the png file is also in that file. Look for href="chrome://global/skin/icons/warning-16.png".

Does it change chrome to add large-alert.png to about:mozilla? -- No, desga2 did that in the beta2 release.

TS is no acronym for privilege. -- It is for troubleshooting.

Why did you remove the faq link? -- I don't remember ever having that link. It is probably better than the link that I did use. The link is coded in mozilla.xhtml. See here near end of the file.
<p>More information is available on <a  href="http://kmeleonbrowser.org/forum/read.php?2,104635,104701,page=1#msg-104701">K-Meleon's web site</a></p>
Replace "http://kmeleonbrowser.org/forum/read.php?2,104635,104701,page=1#msg-104701"; with "http://kmeleon.sourceforge.net/wiki/FAQ#forgetsettings";.

Please note that I do not know how to put chrome back together.

Re: K-Meleon 1.6.0 Beta Development
Posted by: JamesD
Date: September 10, 2011 08:52PM

Quote
deadlock
Window handle:
Can change while the macro is running. Same with tab IDs.

IDs:
Do you have a macro that returns the focused element?
Do you know where the focus is if you select URL Bar
and type <tab> once?

Macros only run in the window/tab in which they start. That window/tab will be the one with focus. There is nothing currently in the code which will identify the window/tab.

If I type "tab" in the URL bar I will be taken to www.tab.com. If I type <tab> in the URL I get an "address not found" message. I must have not understood something this time.

Re: K-Meleon 1.6.0 Beta Development
Posted by: JamesD
Date: September 11, 2011 10:04AM

Quote

TS is no acronym for privilege. -- It is for troubleshooting.

Oops, deadlock is right. Acronym is not the word I should have used. Right now, I cannot remember the right term. It is something we do in the U.S. all the time. We just use the first letter of each word in a title for a shorted title.

Major League Baseball becomes MLB, National Football League becomes NFL, or Veterans Affairs becomes VA. Right now, I cannot remember the word I should have used. Getting old does that sometimes. I will ask my daughter. She better know the term. I paid the bills for college degree.

Edit: OK, the word is acronym. My daughter said I was right. I finally just looked it up. http://en.wikipedia.org/wiki/Acronym_and_initialism



Edited 1 time(s). Last edit at 09/11/2011 01:55PM by JamesD.

Re: K-Meleon 1.6.0 Beta Development
Posted by: deadlock
Date: September 11, 2011 01:03PM

@JamesD
>Macros only run in the window/tab in which they start.
If opened by Menu -> active browser?
If opened by URL Bar -> active browser?
If opened by Preferences -> Preferences window?

And you don't even get the title of the window?

>If I type 'tab' in the URL bar I will be taken to www.tab.com.
If autocomplete doesn't change it or is disabled.
Found a bug with empty selection while testing that.
But it was a typing error:
Where does the focus go if you press <tab> in URL Bar?
If Google is open, it takes two <tab> to get to search box.
What gets focus on first <tab>?

Re: K-Meleon 1.6.0 Beta Development
Posted by: siria
Date: September 11, 2011 01:26PM

deadlock, you're still confusing something there. James and I are no programmers!
Just normal users playing with macrolanguage, which was created for that purpose by kko. And we only have a tiny bit beginner knowledge of javascript, so developing more complicated stuff and JS codes is your part (you and other developers, official or not).

And in the 1-2 years that I've been here regularly there never showed up anyone who could help out with even a single line of JS, if something specific was needed for a macro. There are no programmers around anymore actively in this forum. You can't count in disrupted as developer, his specialty is autoit macros (just because he uses lots of JS in his macros doesn't mean that he necessarily wrote that himself). As far as I remember you're the first here who claims that JS were easy for him, or I wouldn't have asked.
As for myself, most certainly would never have struggled even learning *any* JS, because that stuff is a pure nightmare, JS and I aren't compatible at all. Completely unlogic IMO, always makes me struggle endlessly with trial and error, until after the 999th error some simple thing finally works!! Usually goes like this:




Edited 1 time(s). Last edit at 09/11/2011 01:45PM by siria.

Re: K-Meleon 1.6.0 Beta Development
Posted by: deadlock
Date: September 11, 2011 02:04PM

@JamesD

>Does it create a Priviledge.ini? -- Yes
It still exists.

>Does it create a Privilege.htm? -- No.
It doesn't exist and can be removed from header.

>Priviledge.htm became mozilla.xhtml.
I'm not sure who made your chrome but mine looks like this:
about:mozilla

>Does it change chrome to add large-alert.png to about:mozilla? -- No,
>desga2 did that in the beta2 release.
Maybe there is more than one beta2.

>TS is no acronym for privilege. -- It is for troubleshooting.
Sorry for that. It's a matter of taste and usability:
http://www.google.com/search?q=TS+mozilla
http://www.google.com/search?q=privilege+mozilla
Searching for abbreviations is not much fun.

>I don't remember ever having that link.
Added it to troubleshooting.kmm which was missing in your update.

>More information is available ...
I like what SoerenB wrote in: Suggestion RE: default installation

>Please note that I do not know how to put chrome back together.
Since you know how to use forum search,
this is plain wrong. (Zip it and rename it to jar!)
You didn't yet want to put chrome together. smiling smiley

If you want that warning for missing privileges
we can create a new page, add it to chrome
and test it with KM 1.6b2.



Edited 1 time(s). Last edit at 09/11/2011 03:23PM by deadlock.

Re: K-Meleon 1.6.0 Beta Development
Posted by: deadlock
Date: September 11, 2011 05:13PM

@siria
>James and I are no programmers!
That's just your point of view.

>complicated stuff and JS codes is your part
... if I want more headaches.

>there never showed up anyone who could
>help out with even a single line of JS
You didn't ask loud enough.
(EDIT: listed my own disabilities)

>There are no programmers around anymore actively
and the doors are locked.
We should build a team and get
developer status as a team.
We cannot release without that!

>always makes me struggle endlessly with trial and error
It requires stubbornness and persistence
to learn it the hard way.



Edited 1 time(s). Last edit at 09/13/2011 01:18PM by deadlock.

Re: K-Meleon 1.6.0 Beta Development
Posted by: guenter
Date: September 11, 2011 10:02PM

Quote
siria
deadlock, you're still confusing something there. James and I are no programmers!


And in the 1-2 years that I've been here regularly there never showed up anyone who could help out with even a single line of JS,

You 2 definitely do program using the K-Meleon Macro language. grinning smiley

snuz2 can code JavaScript. Everybody should know that since he coded microRSS.
And microRSS is made from JavaSCript and such. snuz2 definitely was around during the last two years. desga2 should also know JS since he fixed the PrefsPanel.

But possibly Your questions were very specialized or they did not read them.

Re: K-Meleon 1.6.0 Beta Development
Posted by: JamesD
Date: September 12, 2011 12:30AM

Quote
deadlock
>Please note that I do not know how to put chrome back together.
Since you know how to use forum search,
this is plain wrong. (Zip it and rename it to jar!)
You didn't yet want to put chrome together. smiling smiley

Well, I tried that and got a message that KM had stpped working.

I used 7zip to extract embed.jar to a empty folder. I renamed the mozilla.xhtml file to privilege.xhtml. Then I got the mozilla.xhtml from KM 1.5.4 and added it to the folder. Then I used 7zip to "store" the entire thing back as "embed.7z" which I renamed "embed.jar". Even with one extra file, the jar turned out to be smaller.

Do I have to use another product to zip the three folders into embed.zip or something?

Edit: OK, I found that 7zip will make a zip file. I tried that and now KM does run. However, I still have a problem. I now get a message that "The URL is not valid and cannot be loaded." All that I changed was the original reference of a forum thread to the FAQ in the wiki. I have checked and the code looks good.
<a xxxx="http://kmeleon.sourceforge.net/wiki/FAQ#forgetsettings">;

I don't see anything wrong with the reference. But I likely have a typo somewhere. By the way xxxx stands for something else which the forum will not allow.



Edited 1 time(s). Last edit at 09/12/2011 12:55AM by JamesD.

Re: K-Meleon 1.6.0 Beta Development
Posted by: guenter
Date: September 12, 2011 11:00AM

Quote
JamesD
Quote
deadlock
(Zip it and rename it to jar!)

<a xxxx="http://kmeleon.sourceforge.net/wiki/FAQ#forgetsettings">;

I don't see anything wrong with the reference. But I likely have a typo somewhere. By the way xxxx stands for something else which the forum will not allow.

1.) With the 7.zip GUI You can AFAIK immediately change the name so that it packs to embed.jar as output archive. No need to first pack and then rename.

2.) With 7.zip GUI You can also edit or rename mozilla.xhtml inside embed.jar.
Condition is that K-Meleon is closed while You edit it.

( You can only save the changes when K-Meleon is closed.
Else 7zip cannot save changes inside the jar while K-Meleon has opened it. )

Edit & save in the editor. After You close the editor 7zip will ask You and do the changes if confirmed. If I remember correctly.

For some work inside chrome jars You need to use an editor that also knows UTF8 not only ANSI file format.

3.) It is possible that 7zip or Your editor created an error while or after You copy/pasted Your change.

Your suggested change is possible and works on my PC.

Attachment.



Edited 1 time(s). Last edit at 09/12/2011 11:38AM by guenter.

Attachments: privilege.zip (980 bytes)  
Re: K-Meleon 1.6.0 Beta Development
Posted by: deadlock
Date: September 12, 2011 12:39PM

@JamesD
>mozilla.xhtml file to privilege.xhtml. Then I got the mozilla.xhtml
>from KM 1.5.4 and added it to the folder. Then I used 7zip to 'store'

How dare you touch mozilla.xhtml? It is for about:mozilla.

>the entire thing back as 'embed.7z' which I renamed 'embed.jar'.
Does your new zipped jar-file extract the same way?

>Even with one extra file, the jar turned out to be smaller.
Did you search the forum? smiling smiley Change settings in 7zip.
K-Meleon doesn't use compressed files for chrome,
but default and low compression can be used.

>that 'The URL is not valid and cannot be loaded.'
Guenter's attachment works. You can use updated
embed.jar and troubleshooting.kmm from dhost.



Edited 2 time(s). Last edit at 09/12/2011 02:36PM by deadlock.

Re: K-Meleon 1.6.0 Beta Development
Posted by: guenter
Date: September 12, 2011 09:05PM

Quote
deadlock

>Even with one extra file, the jar turned out to be smaller.
Did you search the forum? smiling smiley Change settings in 7zip.
K-Meleon doesn't use compressed files for chrome,
but default and low compression can be used.

But K-Meleon is capable of using compressed files for chrome.

BTW Recent Firefox versions use compression for their files.

Original omni.jar of current Aurora has 5.6 MB & after unpacking has 15.7 MB.

Compression and optimization (by Taras Glek) makes that jars load significantly faster.

K-Meleon projects should consider at least packing compressed for future versions.



Edited 2 time(s). Last edit at 09/12/2011 09:10PM by guenter.

Re: K-Meleon 1.6.0 Beta Development
Posted by: JamesD
Date: September 12, 2011 11:03PM

I found out something. It is not what is in privilege.xhtml. It is the fact that it is not named mozilla.xhtml. It appears that the "about:" system has a defined list of names. Mozilla is on the list and privilege is not.

I renamed mozilla.xhtml to xmozilla.xhtml and privilege.xhtml to mozilla.xhtml. I then used 7zip to "normal" compress to a zip file. I renamed the file to embed.jar and copied it to KM. It worked just fine. If I type about:mozilla into the URL bar and press enter, I get the correct error message for troubleshooting. When I type about:xmozilla into the URL bar and press enter, I get the error message about a bad URL. I guess this explains why desga2 picked mozilla for the name of the file needed for troubleshooting.

Does anyone know where the list of files for "about:" is kept?
Edit:
Found this: http://en.wikipedia.org/wiki/About:_URI_scheme#Mozilla-specific_about:_addresses

Second edit:
Quote
deadlock
>that 'The URL is not valid and cannot be loaded.'
Guenter's attachment works. You can use updated
embed.jar and troubleshooting.kmm from dhost.

I see that Guenter did not use the about: system. I like his code better. I did not know that one could start the path name from "chrome". That is a good thing to know.



Edited 2 time(s). Last edit at 09/12/2011 11:32PM by JamesD.

Re: K-Meleon 1.6.0 Beta Development
Posted by: deadlock
Date: September 12, 2011 11:27PM

@JamesD
>I see that Guenter did not use the about: system.
I told you not to abuse about:mozilla.

Does it fail using chrome://global/content/mozilla.xhtml
and succeed using about:mozilla?

If yes, restrictions for
chrome://global/content/privilege.xhtml
should be removed instead of adding support
for about:privileges or about:permissions.



Edited 3 time(s). Last edit at 09/13/2011 12:07AM by deadlock.

Re: K-Meleon 1.6.0 Beta Development
Posted by: JamesD
Date: September 12, 2011 11:46PM

Quote
deadlock
@JamesD
I didn't test privileges.

I just finished testing. Yes, everything works just right now. I test both ways by running once with the current troubleshooting.kmm from guenter and then I change the test line from != to == in order to see if the error message (privilege.xhtml) is desplayed. It does work.

I think the code is good to go now. Thank you and thank guenter for the code to bypass the about: stuff.



Edited 1 time(s). Last edit at 09/12/2011 11:46PM by JamesD.

Re: K-Meleon 1.6.0 Beta Development
Posted by: deadlock
Date: September 13, 2011 12:13AM

Quote
JamesD
Yes, everything works just right now.

Fine! Anything else to change?

Re: K-Meleon 1.6.0 Beta Development
Posted by: JamesD
Date: September 13, 2011 12:35PM

I still would like an ID or handle on the tab and window in focus. In line number 1287 of the referenced file, the getwinvar funtion is described. http://kmeleon.cvs.sourceforge.net/viewvc/kmeleon/k-meleon/macros2/functions.h?view=markup

I don't know how to do the work, but we need two new "if id =" statements. They should be 'if (name == "WindowID")' and 'if (name == "TabID")'. They should each return a string containing a unique value representing the tab and window which currently has focus.

Is this possible? It is not necessary to carry the answers through to global variables. I can call getwinvar from a macro. The getwinvar statement is not described in the MacroLanguage because all of its functions appear as 'Special Global Variables'.

Re: K-Meleon 1.6.0 Beta Development
Posted by: deadlock
Date: September 13, 2011 03:32PM

@JamesD
>return a string containing a unique value
>representing the tab and window which currently has focus.

Did you try to use $WindowNumber and $TabNumber?
$SelectedText is in the same file.

Re: K-Meleon 1.6.0 Beta Development
Posted by: JamesD
Date: September 13, 2011 06:27PM

Quote
deadlock
Did you try to use $WindowNumber and $TabNumber?

They return the integer counts of windows and tabs in the window in focus.

_Snippet_RunCode {
$_Snippet_Value = getwinvar(TabNumber);
if ( $TabNumber == $_Snippet_Value ) {
	alert($_Snippet_Value, "getwinvar(TabNumber)");
	}

$_Snippet_Value2 = getwinvar(WindowNumber);
if ( $WindowNumber == $_Snippet_Value2 ) {
	alert($_Snippet_Value2, "getwinvar(WindowNumber)");
	}
}

I need to have something which will identify which tab/window has the focus. The URL is no help, because that will most likely change over time.

Re: K-Meleon 1.6.0 Beta Development
Posted by: deadlock
Date: September 13, 2011 10:54PM

@JamesD
I began to use tabs last winter.
You're at least 2 years ahead.

PriorTabs.ini

>>Did you try to use $WindowNumber and $TabNumber?
>They return the integer counts of windows
>and tabs in the window in focus.

The integer count of windows in the window in focus?
The count of tabs in a window sounds better,
but no macro in KM 1.6b2 is using them.
Both commands are undocumented and I'm
getting dizzy thinking about them.

>I need to have something which will identify
>which tab/window has the focus.

You said all macros work in the tab that has focus.
I guess that you want something different.

This function in plugins.cpp should return true
if the window/tab has focus:
BOOL GetWindows(HWND hWnd, CBrowserFrame** frame, CBrowserView** view)

>The URL is no help, because that
>will most likely change over time.

And you can clone them.
CBrowserTab has m_iIndex to identify them
and IsActive to test which one is active.

K-Meleon forum is powered by Phorum.