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