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:
rephorm 2002-02-08 18:54:54 +00:00 committed by rephorm
parent 888151058b
commit d284db6c28
2 changed files with 73 additions and 0 deletions

Binary file not shown.

View File

@ -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);