[Sugar-devel] Background Screen Color for SoaS Activity

Tomeu Vizoso tomeu at sugarlabs.org
Wed Jul 15 06:46:56 EDT 2009


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.

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