diff --git a/data/epplets/changer.bits.db b/data/epplets/changer.bits.db new file mode 100644 index 000000000..546f0edf6 Binary files /dev/null and b/data/epplets/changer.bits.db differ diff --git a/data/epplets/deskswitcher.fe b/data/epplets/deskswitcher.fe new file mode 100644 index 000000000..95c557b8b --- /dev/null +++ b/data/epplets/deskswitcher.fe @@ -0,0 +1,73 @@ +/* + An ebits version of the desktop switcher. + Written by James Carscadden and Brian Mattern + + Use bits named Changer_# where # is 0 - 7 for the buttons. The disabled state + is used for the current desktop. +*/ + +uses Console, String; + +/* define observer function */ +function changerObserver(object data, number desk) +{ + number i, n; + /* get the desktop number as an int. n is passed as a float (0.000000, 1.00000000, ...) and i just want (0, 1, ...) */ + n = String.toLong(String.copySection("" + desk, 0, 1)); + Console.println("in changerObserver: " + desk + ", " + n); + + for (i = 0; i < 8; i++) + data.setState("Changer_" + i, "normal"); + data.setState("Changer_" + n, "disabled"); +} + +/* define callback function */ +function changer_button_cb(object ev, string c, number b, number x, number y, number ox, number oy, number ow, number oh) +{ + number n, i; + + Console.println("in changer_button_cb: " + c); + /* the '+ " "' is included to make it work with broken ferite .99.4 String.copySection() func */ + n = String.toLong(String.copySection(c + " ", 8, 9)); + e.flip_to_desktop(n); +} + +/* ---------------------main func-------------------------- */ + +/* declare vars */ +object epp; +object ebits; +number i; + +/* create a new epplet, required */ +epp = new Epplet(); + +/* add an ebits object to the epplet */ +ebits = new Ebits("changer.bits.db", epp); + +/* move the epplet to the top right corner */ +epp.move(epp.getViewW() - 100, 0); + +/* set the ebits object as the main epplet bits */ +epp.setBits(ebits); + +/* display the epplet. this resizes / moves the main epplet bits to the geometry of the epplet */ +epp.display(); + +/* set up callbacks for when button is pressed */ +ebits.setCallback("Changer_0", "changer_button_cb", ebits); +ebits.setCallback("Changer_1", "changer_button_cb", ebits); +ebits.setCallback("Changer_2", "changer_button_cb", ebits); +ebits.setCallback("Changer_3", "changer_button_cb", ebits); +ebits.setCallback("Changer_4", "changer_button_cb", ebits); +ebits.setCallback("Changer_5", "changer_button_cb", ebits); +ebits.setCallback("Changer_6", "changer_button_cb", ebits); +ebits.setCallback("Changer_7", "changer_button_cb", ebits); + +/* e starts on desktop 0, so set it disabled */ +ebits.setState("Changer_0", "disabled"); + +/* add observer, when the desktop is switched, the function "deskSwitchObserver is called, and ebits is passed + along with it (although it isn't used);*/ +epp.addDesktopObserver("changerObserver", ebits); +