12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #include <lib/std.mi>
- // ------------------------------------------------------------------------------------
- Global GuiObject target;
- Global ComponentBucket buck;
- // ------------------------------------------------------------------------------------
- Function turnAllOffExcept(GuiObject except);
- Function turnOn(GuiObject obj);
- Function turnOff(GuiObject obj);
- // ------------------------------------------------------------------------------------
- // ------------------------------------------------------------------------------------
- // init
- // ------------------------------------------------------------------------------------
- System.onScriptLoaded() {
- target = getScriptGroup().findObject("skin.config.target");
- buck = getScriptGroup().findObject("my.bucket");
- // turn off all
- GuiObject o = NULL;
- turnAllOffExcept(o);
- }
- // ------------------------------------------------------------------------------------
- // save scroller position
- // ------------------------------------------------------------------------------------
- System.onScriptUnloading() {
- if (buck) {
- setPrivateInt("configmenu", "last_scroll", buck.getScroll());
- }
- }
- // ------------------------------------------------------------------------------------
- // turn on last open
- // ------------------------------------------------------------------------------------
- buck.onStartup() {
- setScroll(getPrivateInt("configmenu", "last_scroll", 0));
- Group g = buck.enumChildren(getPrivateInt("configmenu", "last_page", 0));
- if (!g) g = buck.enumChildren(0);
- if (!g) return;
- ToggleButton btn = g.getObject("btn");
- if (btn) btn.leftClick();
- }
- // ------------------------------------------------------------------------------------
- // this is called by the bucket button to switch to a new group
- // ------------------------------------------------------------------------------------
- target.onAction(String action, String param, int x, int y, int p1, int p2, GuiObject source) {
- if (getToken(action,";",0) == "switchto") {
- String grp = getToken(action, ";", 1);
- String is_subpage = getToken(action, ";", 2);
- target.setXmlParam("groupid", grp);
- if (is_subpage!="subpage") turnAllOffExcept(source.getParent()); // getParent because the source is the button itself, the parent is the whole group item in the bucket
- }
- }
- // ------------------------------------------------------------------------------------
- // turn off all buttons except for the parameter, also save last_page param based on param item
- // ------------------------------------------------------------------------------------
- turnAllOffExcept(GuiObject except) {
- if (!buck) return;
- int i=0;
- // enumerate all inserted groups, turn them off if they're not our exception
- while (i<buck.getNumChildren()) {
- GuiObject obj = buck.enumChildren(i);
- if (obj == except) { // otherwise record last page
- setPrivateInt("configmenu", "last_page", i);
- i++;
- continue;
- }
- if (obj == NULL) { break; } // shoundnt happen
- turnOff(obj);
- i++;
- }
- // turn on the clicked item
- if (except) turnOn(except);
- }
- // ------------------------------------------------------------------------------------
- turnOn(GuiObject obj) {
- Group gobj = obj;
- // otherwise we just need this :
- ToggleButton tg = gobj.getObject("btn");
- tg.setActivated(1);
- }
- // ------------------------------------------------------------------------------------
- turnOff(GuiObject obj) {
- Group gobj = obj;
- // otherwise we just need this :
- ToggleButton tg = gobj.getObject("btn");
- tg.setActivated(0);
- }
|