[Sugar-devel] Background Screen Color for SoaS Activity

Tomeu Vizoso tomeu at sugarlabs.org
Wed Jul 15 06:49:16 EDT 2009


On Wed, Jul 15, 2009 at 12:46, Tomeu Vizoso<tomeu at sugarlabs.org> wrote:
> On Tue, Jul 14, 2009 at 04:21, Art Hunkins<abhunkin at uncg.edu> wrote:
>> Gary -
>>
>> Thanks so much for these helpful suggestions.
>
> At this point, I think it would be more efficient if you went through
> the PyGTK tutorial. No need to do all of it, though.
>
> http://www.pygtk.org/pygtk2tutorial/index.html
>
> What is easy to do in some widget systems isn't as easy in others,
> unfortunately.

Forgot to mention the PyGTK FAQ, which has several entries related
about changing background colors:

http://faq.pygtk.org/index.py?req=index

I don't think any of the issues you are referring to are specific to
Sugar, so you can use the upstream documentation without fear of
missing any details.

HTH,

Tomeu

> Regards,
>
> Tomeu
>
>> With them I've been able to change the color of the basic Sugar display, and
>> to create boxes of differing colors.
>>
>> Several major issues remain (which may not be surmountable?):
>> 1) when text displayed on the basic screen (in no box) - that area reverts
>> to gray;
>> 2) importantly, nothing else displays in my colored boxes; this includes
>> frames, other boxes, text and buttons.
>>
>> Can you guide me toward solutions here?
>>
>> I'm basically modifying Lazzarini's csndsugui.py. Here is the revised box
>> code:
>>
>>   def box(self, vert=True, colour=(0xFFFF, 0xFFFF, 0xFFFF), parent=None,
>> padding=5):
>>      """creates a box
>>          vert: True, creates a vertical box; horiz.
>>           otherwise
>>          parent: parent box, None if this is a toplevel box
>>          padding: box padding
>>          returns the widget instance"""
>>      if vert:
>>        box = gtk.VBox()
>>      else:
>>        box = gtk.HBox()
>>      self.event_box = gtk.EventBox()
>>      self.event_box.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(colour[0],
>> colour[1], colour[2], 0))
>>      if parent:
>>        parent.pack_start(self.event_box)
>>      else:
>>        self.outbox.pack_start(self.event_box)
>>      self.window.set_canvas(self.outbox)
>>      self.boxes.append(box)
>>      self.event_box.show()
>>      box.show()
>>      return box
>>
>> I suspect that chaages in the last few lines are required (especially in the
>> "boxes" line and probably the packing).
>>
>> And here is the current "text" code. I rather imagine if this could be
>> gotten to display in a box with the box retaining its color, I might be on
>> the way to success (but this may be the hard part; can other things be
>> displayed "over" an event_box?). This code is straight from Lazzarini:
>>
>>   def text(self, name, box=None,colour=(0,0,0)):
>>     """Creates a static text label
>>        name: text label
>>        box: parent box, None if text is to be placed toplevel
>>        colour: RGB values in a tuple (R,G,B)
>>        returns the widget instance"""
>>     label = gtk.Label(name)
>>     label.modify_fg(gtk.STATE_NORMAL,
>> gtk.gdk.Color(colour[0],colour[1],colour[2], 0))
>>     if box:
>>      box.pack_start(label, False, False, 5)
>>     else:
>>      self.outbox.pack_start(label, False, False, 5)
>>     label.show()
>>     return label
>>
>> I very much appreciate your help. I, too, wonder if all this hassling over
>> color is worth it. If only there were some simple way to make the overall
>> display white instead of gray! I'm wanting the color change strictly for
>> readability; I need more color contrast to read the text (which is
>> unfortunately profuse in my project).
>>
>> Art Hunkins
>>
>> ----- Original Message ----- From: "Gary C Martin" <gary at garycmartin.com>
>> To: "Art Hunkins" <abhunkin at uncg.edu>
>> Cc: "Tomeu Vizoso" <tomeu at sugarlabs.org>; <sugar-devel at lists.sugarlabs.org>
>> Sent: Tuesday, July 07, 2009 10:07 AM
>> Subject: Re: [Sugar-devel] Background Screen Color for SoaS Activity
>>
>>
>>> Hi Art,
>>>
>>> On 7 Jul 2009, at 03:46, Art Hunkins wrote:
>>>
>>>> Tomeu,
>>>>
>>>> I've had no luck modifying background color for anything except  buttons.
>>>>
>>>> No boxes, even when the box is completely empty.
>>>>
>>>> Does anyone know how to change the color of the entire screen, or of  a
>>>> box?
>>>
>>> I can remember hitting my head on this when first playing with gtk. I
>>> wanted a black area to place a moon image in. The trick seems to be  using a
>>> gtk.EventBox(). Have a look in moon.py at about line #114:
>>>
>>> http://git.sugarlabs.org/projects/moon/repos/mainline/trees/master
>>>
>>> Just quickly scraped out the lines I think might be interesting, does seem
>>> quite a bit for just a black screen :-)
>>>
>>> # Create the main activity container
>>> self.main_view = gtk.HBox()
>>>
>>> # Blackness
>>> self.event_box = gtk.EventBox()
>>> colormap = gtk.gdk.colormap_get_system()
>>> self.black_alloc_color = colormap.alloc_color('black')
>>> self.event_box.modify_bg(gtk.STATE_NORMAL, self.black_alloc_color)
>>> self.main_view.pack_end(self.event_box)
>>>
>>> # Display everything
>>> self.event_box.show()
>>> self.main_view.show()
>>> self.set_canvas(self.main_view)
>>> self.show_all()
>>>
>>> Regards,
>>> --Gary
>>
>>
>


More information about the Sugar-devel mailing list