forked from enlightenment/enlightenment
Updated deskswitcher. Using ebits instead of evas_objects.
A good example of a simple epplet using ebit callbacks and observing desktop changes. SVN revision: 5906
This commit is contained in:
parent
888151058b
commit
d284db6c28
Binary file not shown.
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue