Hi John
Yes, you can see what the different directories are for on
https://wiki.openoffice.org/wiki/Source_code_directories
I understand about the colors. But I can't tell where your
xPropertySet comes from. It is critical to know that. Is it obtained
from the text cursor like the Basic example on that thread? Or
something else?
Damjan
On Tue, Sep 22, 2015 at 4:24 PM, John D'Orazio
<[email protected]> wrote:
Ok I'll take a look at that area of the wiki, in the meantime I have
found
that the Writer code is under the main/sw folder (in fact I corrected a
page of the wiki that said it was under main/sd, which is instead the
Draw
application...)
I posted some code samples in the forum thread that I opened and that I
posted in the first message of this thread.
Let me try to explain again. Basically, if you try setting the
"CharBackColor" property from Java using an RGB integer value from a Java
Color object, it simply doesn't work. I can "manually" set a value that
works by passing an RGB integer value with an "empty" alpha bit, for
example *xPropertySet.setProperty("CharBackColor", 0x00FF0000)* will
successfully set the text background color to Red.
However, when working with the Java Color object, the alpha bit is
automatically set by the Java Color object to 0xFF (which corresponds to
full opacity, whereas 0x00 actually corresponds with full transparency).
In my understanding, OpenOffice doesn't support alpha transparency for
background color and therefore assumes a value of 0x00 for the alpha bit,
and if any other value than 0x00 is set in the alpha bit OpenOffice just
doesn't like it and winds up not displaying the background color at all.
This normally isn't a problem with Basic, because with Basic the color
operations don't automatically set the alpha bit. You can create an RGB
integer with Basic that has no alpha bit. You cannot however with the
Java
Color object: *Color.YELLOW.getRGB()* in Java will give you an integer
that
has the alpha bit set to 0xFF (= full opacity) by default. And OpenOffice
isn't liking it.
So when working in Java, I have found it necessary to clear the alpha bit
before passing in the integer value: *Color.YELLOW.getRGB() &
~0xFF000000* does
the trick here.
It took me a while to figure out what was going on here and to figure out
the necessary workaround with this bitwise operation. I don't think that
this is intended behaviour, it shouldn't be necessary to explicitly clear
the alpha bit with a bitwise operation in order to set the Character
Background Color. I'm figuring maybe in earlier versions of Java the
alpha
bit was not set by default but now it is, or maybe this has been simply
overlooked.
I hope I have explained better now? I'm looking over the source code to
see
where exactly OpenOffice is taking the integer value set in the
"CharBackColor" property and actually applying it to the text in the
document. That's probably where it's assuming an alpha bit of 0x00 but it
shouldn't be. If background transparency is not supported per design,
then
OpenOffice not assume an empty alpha bit but should check for the alpha
bit
value and simply clear it or set it to 0xFF (= full opacity).
On Tue, Sep 22, 2015 at 10:25 AM, Damjan Jovanovic <[email protected]>
wrote:
Hi John
Have you looked at the development documentation for Writer
(https://wiki.openoffice.org/wiki/Writer)?
It would also help if you posted a code sample so we can see what you
are trying to set the color on.
Damjan
On Mon, Sep 21, 2015 at 9:17 PM, John D'Orazio
<[email protected]> wrote:
Does anyone know if the Writer application uses some kind of canvas
interface for formatting and displaying text? I'm picking up on
"canvas"
here and there but I'm not sure if it's only for the Drawing
application,
or if all Applications use a form of canvas.
I'm guessing the problem with the Java values having the alpha bit and
the
Uno/Basic values not having the alpha bit for Character Background
Color
would need to be addressed somewhere around where the values are
passed
between the two, or where the value is actually set to the Writer
interface. I'm still trying to get an idea of how the source code is
organized...
On Mon, Sep 21, 2015 at 8:45 PM, John D'Orazio <
[email protected]> wrote:
Thanks for the tip on OpenGrok! it rocks :D did a search in 887
milliseconds, not bad at all. I guess it has the source code already
indexed so it's a lot faster. That's a big help!
On Mon, Sep 21, 2015 at 8:20 PM, Damjan Jovanovic <[email protected]
wrote:
I use Eclipse but I first build OpenOffice and then only open 1
module
at a time. If you plan to open the entire project, you'll need a lot
of RAM and to increase Eclipse/Java memory limits.
Regards
Damjan
On Mon, Sep 21, 2015 at 7:47 PM, John D'Orazio
<[email protected]> wrote:
Ok I'm trying to get the sources on my local computer to take a
better
look
at them, it'll be easier to search them locally and start to get
to
know
them. Does anyone use Eclipse to work with the source code? I'm
giving
it a
try to see if it is feasible... I saw this page
<https://wiki.openoffice.org/wiki/OpenOffice_and_Eclipse> that
says
it
should be doable.
On Sat, Sep 19, 2015 at 7:18 PM, John D'Orazio <
[email protected]> wrote:
Yes I tried setting the CharBackTransparent boolean also, it had
no
effect. From my latest "research" I believe that it's not the
case
that
transparent and opaque values are being exchange, it's simply
that
OpenOffice doesn't support transparency for background colors and
because
of this seems to use "0x00" for the alpha bit (which would
normally
mean
transparent rather than opaque!).
The problem is that the Java Color Object and any other kind of
Color
handling such as with JColorChooser, always set the alpha bit. So
I'm
having to explicitly unset the alpha bit / set it to 0x00 before
trying to
set the background color.
I believe this is something that can / should be handled behind
the
scenes, by the OpenOffice API. If it doesn't support
transparency it
should
however check for the alpha bit and set it to whatever it likes
it
to
be.
So anyone trying to set transparency will simply get opaque,
rather
than
get nothing.
On Sat, Sep 19, 2015 at 4:31 PM, Carl Marcum <[email protected]
wrote:
On 09/17/2015 07:24 PM, John D'Orazio wrote:
I believe I have found what can be considered a bug, or at
least
not
intended behaviour, in the way the OpenOffice API takes values
from
Java
when setting certain text properties (in this case
"CharBackColor")
using
the XPropertySet interface. I have been discussing this on a
forum
thread (
https://forum.openoffice.org/en/forum/viewtopic.php?f=44&t=79294&p=364347
)
and have opened an issue for it on the bugzilla tracker (
https://bz.apache.org/ooo/show_bug.cgi?id=126531).
I would be willing to look into it and work on a patch for
this,
if
anyone
can point me in the right direction of where exactly to look in
the
Open
Office source code... I have been skimming over it in the svn
repo (
https://svn.apache.org/repos/asf/openoffice/trunk/), but for a
newcomer
it's hard to know where to look (I'm guessing it might have to
do
with
the
XPropertySet interface, or wherever the Text Properties
supported
by
the
interface are defined). If anyone can point me in the right
direction I
can
try to look into it...
Hi John,
I'm actually just beginning to look into how the java jars are
built
so I
may need corrected by someone.
I think the java files are "Built" from IDL files and packaged
into
the
jar files during a build process.
I have only svn checked out the AOO code last night and begun
looking.
For instance if you search the codebase for XPropertySet the
only
java
files I have found are in QA type directories.
Have you tried to additionally set the CharBackTransparent
boolean
property as well [1].
[1]
https://www.openoffice.org/api/docs/common/ref/com/sun/star/style/CharacterProperties.html#CharBackColor
Thanks,
Carl
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
--
John R. D'Orazio
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
--
John R. D'Orazio
--
John R. D'Orazio
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
--
don John R. D'Orazio
Cappellano Coordinatore
________________________________________
Servizio di Cappellania - Università degli Studi Roma Tre
Piazzale San Paolo 1/d - 00120 Città del Vaticano
tel. +39 06-69880809 - cell. +39 333/2545447
E-Mail: *[email protected]* <[email protected]>
|
*[email protected]* <[email protected]>
----
Sito Web: http://www.cappellaniauniroma3.org
Twitter: https://twitter.com/CappellaniaR3
Flickr: http://www.flickr.com/people/cappellaniauniroma3/
Pagina Facebook: https://www.facebook.com/cappellania.uniroma3
Gruppo Facebook: https://www.facebook.com/groups/cappellania.uniroma3
Pagina Google+: https://plus.google.com/+CappellaniaUniRoma3org
Community Google+: http://gplus.to/CappellaniaUniRoma3
LinkedIn:
http://www.linkedin.com/company/cappellania-universit-degli-studi-roma-tre
----
Per iscriversi al Calendario Pubblico della Cappellania (con account
gmail): [image: Iscriviti con Google Calendar]
<
https://www.google.com/calendar/render?cid=8jugejikjtlks094p62hled6vs%40group.calendar.google.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]