Re: Some issues calling atk methods II
- From: Joseph Scheuhammer <clown alum mit edu>
 
- To: gnome-shell-list gnome org
 
- Subject: Re: Some issues calling atk methods II
 
- Date: Thu, 28 Oct 2010 17:08:32 -0400
 
 API,
One thing:  In JavaScript, one invokes a constructor with the 'new' 
operator.  That is:
let x = new Atk.Relation(...);
not:
let x = Atk.Relation.new(...);
Other than that, I don't have a definitive answer.  I tried a few 
things, and have some clues, but it doesn't look like things are working 
properly.  Here is what I did:
const Atk = imports.gi.Atk;
<skip>
let stLabel = new St.Label({ text: "ForAPI" });
log('new St.Label():  ' + stLabel);
let accLabel = stLabel.get_accessible();
log('accLabel.get_role(): ' + accLabel.get_role());
let accRelation = new Atk.Relation(accLabel, 1, 
Atk.RelationType.LABELLED_BY);
log('accRelation.get_relation_type(): ' +  accRelation.get_relation_type());
The log output was:
JS LOG: new St.Label():  [0x8ebdad0 StLabel ("ForAPI")]
JS LOG: accLabel.get_role():  66
JS LOG: accRelation.get_relation_type(): 0
I *think* 66 is ATK_ROLE_TOOL_TIP.  Is that what it should be?
In order to avoid a crash when invoking 'new Atk.Relation(...)', I 
didn't pass an array, but passed the accessible itself, with a count of 
one.  Why that works doesn't make much sense to me, though.
Also, the Atk.Relation that is returned has the wrong relation type.  
It's zero (= no relation), but it should be 4 (= labelled-by).
As I said, no definitive answer; just clues to a puzzle.
--
;;;;joseph
'Clown control to Mao Tse Tung.'
 - D. Bowie (misheard lyric) -
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]