bigboard r7411 - in trunk: . bigboard bigboard/core bigboard/stocks bigboard/stocks/files bigboard/stocks/mail bigboard/stocks/people bigboard/stocks/search bigboard/stocks/self bigboard/themes/default bigboard/themes/fedora
- From: otaylor svn gnome org
- To: svn-commits-list gnome org
- Subject: bigboard r7411 - in trunk: . bigboard bigboard/core bigboard/stocks bigboard/stocks/files bigboard/stocks/mail bigboard/stocks/people bigboard/stocks/search bigboard/stocks/self bigboard/themes/default bigboard/themes/fedora
- Date: Sat, 28 Jun 2008 00:15:52 +0000 (UTC)
Author: otaylor
Date: Sat Jun 28 00:15:52 2008
New Revision: 7411
URL: http://svn.gnome.org/viewvc/bigboard?rev=7411&view=rev
Log:
Change the UI for the not visible mode:
- Small "tabs" are visible at the slide of screen
- Tabs slide out on mouse-over
Make the top-level window have an alpha-channel when a compositing
manager is running
Shape the toplevel window with a square for each stock when a compositing
manager is not running
Stock MailStock PeopleStock FileStock: Add a concept of "active", that keeps
stocks from sliding back, and mark stock as active while a slideout is up
SearchEntry SelfStock search.xml SearchStock: Remove the Search "Stock",
make it just a SearchEntry class that the SelfStock can use
DockWindow: Dock window base class
ExpandBox: Class for doing interpolating transition animations
themes/fedora/*.css themes/fedora/*.svg: Redo Fedora using SVG background images
Added:
trunk/bigboard/core/search_entry.py
- copied, changed from r7400, /trunk/bigboard/stocks/search/SearchStock.py
trunk/bigboard/dock_window.py
trunk/bigboard/expand_box.py
trunk/bigboard/themes/fedora/grippy.png (contents, props changed)
trunk/bigboard/themes/fedora/stock-bottom-alpha.svg
trunk/bigboard/themes/fedora/stock-bottom-solid.svg
trunk/bigboard/themes/fedora/stock-header-left-alpha.svg
trunk/bigboard/themes/fedora/stock-header-left-solid.svg
trunk/bigboard/themes/fedora/stock-header-right-alpha.svg
trunk/bigboard/themes/fedora/stock-header-right-prelight-alpha.svg
trunk/bigboard/themes/fedora/stock-header-right-prelight-solid.svg
trunk/bigboard/themes/fedora/stock-header-right-solid.svg
trunk/bigboard/themes/fedora/stock-hidden-alpha.svg
trunk/bigboard/themes/fedora/stock-hidden-solid.svg
trunk/bigboard/themes/fedora/stock-main.svg
trunk/bigboard/themes/fedora/theme-alpha.css
trunk/bigboard/themes/fedora/theme-common.css
trunk/bigboard/themes/fedora/theme-solid.css
Removed:
trunk/bigboard/stocks/search/
trunk/bigboard/stocks/search.xml
trunk/bigboard/themes/fedora/theme.css
Modified:
trunk/bigboard/core/exchange.py
trunk/bigboard/core/panel.py
trunk/bigboard/core/stock_holder.py
trunk/bigboard/stock.py
trunk/bigboard/stocks/files/FilesStock.py
trunk/bigboard/stocks/mail/MailStock.py
trunk/bigboard/stocks/people/PeopleStock.py
trunk/bigboard/stocks/self.xml
trunk/bigboard/stocks/self/SelfStock.py
trunk/bigboard/theme_manager.py
trunk/bigboard/themes/default/ (props changed)
trunk/bigboard/themes/fedora/ (props changed)
trunk/main.py
Modified: trunk/bigboard/core/exchange.py
==============================================================================
--- trunk/bigboard/core/exchange.py (original)
+++ trunk/bigboard/core/exchange.py Sat Jun 28 00:15:52 2008
@@ -126,7 +126,6 @@
stylesheet = None
return StockHolder(module, self.__widget_environ, pymodule=pymodule,
- is_notitle=(module.srcurl in self.__hardcoded_urls),
panel=kwargs['panel'], stylesheet=stylesheet)
def render_url(self, url, **kwargs):
Modified: trunk/bigboard/core/panel.py
==============================================================================
--- trunk/bigboard/core/panel.py (original)
+++ trunk/bigboard/core/panel.py Sat Jun 28 00:15:52 2008
@@ -8,6 +8,7 @@
import hippo
from bigboard.big_widgets import Button, Header, Sidebar
+from bigboard.dock_window import DockWindow
from bigboard.globals import BUS_NAME_STR, GCONF_PREFIX
from bigboard.libbig.gutil import *
import bigboard.keybinder
@@ -15,6 +16,11 @@
from bigboard.stock import Stock
from bigboard.theme_manager import ThemeManager
+try:
+ import bigboard.bignative as bignative
+except:
+ import bignative
+
from exchange import Exchange
_logger = logging.getLogger("bigboard.Panel")
@@ -57,74 +63,92 @@
def __idle_undo_visible(self):
gconf.client_get_default().set_bool(GCONF_PREFIX + 'visible', True)
return False
+
+class StocksBox(hippo.CanvasBox, hippo.CanvasItem):
+ def __init__(self, *args, **kwargs):
+ hippo.CanvasBox.__init__(self, *args, **kwargs)
+ self.__hidden_width = 0
+ self.__visible_width = 0
+
+ def do_get_width_request(self):
+ minimum, natural = hippo.CanvasBox.do_get_width_request(self)
+
+ max_hidden_width = 0
+ max_visible_width = 0
+
+ for child in self.get_children():
+ hidden_width = child.get_hidden_width()
+ visible_width = child.get_visible_width()
+ max_hidden_width = max(max_hidden_width, hidden_width)
+ max_visible_width = max(max_visible_width, visible_width)
+
+ if max_hidden_width != self.__hidden_width:
+ self.__hidden_width = max_hidden_width
+ self.notify('hidden-width')
+
+ if max_visible_width != self.__visible_width:
+ self.__visible_width = max_visible_width
+ self.notify('visible-width')
+
+ return minimum, natural
+
+ def get_hidden_width(self):
+ return self.__hidden_width
+
+ def get_visible_width(self):
+ return self.__visible_width
+
+ hidden_width = gobject.property(type=int, getter=get_hidden_width)
+ visible_width = gobject.property(type=int, getter=get_visible_width)
+
+gobject.type_register(StocksBox)
class Panel(dbus.service.Object):
def __init__(self, bus_name):
dbus.service.Object.__init__(self, bus_name, '/bigboard/panel')
_logger.info("constructing")
-
+
+ self.__visible = False
self.__popped_out = False
self.__shell = None
gconf_client = gconf.client_get_default()
- self._dw = Sidebar(GCONF_PREFIX + 'visible')
- gconf_client.notify_add(GCONF_PREFIX + 'orientation', self.__sync_orient)
+
+ self._dw = DockWindow()
+ self._dw.connect_after('size-allocate', self.__on_dock_window_size_allocate)
+ self._dw.connect_after('realize', self.__on_dock_window_realize)
+
+ self.__theme_mgr = ThemeManager.getInstance()
+ self.__theme_mgr.connect('theme-changed', self.__sync_theme)
+ self.__sync_theme()
+
+ self._dw.set_composited(self.__theme_mgr.composited)
+
+ gconf_client.notify_add(GCONF_PREFIX + 'orientation', self.__sync_orient)
self.__sync_orient()
self.__keybinding = gconf_client.get_string('/apps/bigboard/focus_key')
if self.__keybinding:
bigboard.keybinder.tomboy_keybinder_bind(self.__keybinding, self.__on_focus)
- self.__autohide_id = 0
-
self._holders = {} ## metainfo.srcurl to StockHolder
- self._canvas = canvas = hippo.Canvas()
- self._dw.get_content().add(self._canvas)
-
- self._main_box = hippo.CanvasBox(border_right=1, border_color=0x999999FF, padding_bottom=4)
- self._canvas.set_root(self._main_box)
+ self._main_box = hippo.CanvasBox()
- self._header_box = Header()
- self._header_box.connect("button-press-event", self.__on_header_buttonpress)
+ self._dw.set_root(self._main_box)
- self.__unpopout_button = Button(label='Hide', label_ypadding=-2)
- self.__unpopout_button.set_property('yalign', hippo.ALIGNMENT_CENTER)
- self.__unpopout_button.connect("activated", lambda button: self.__do_unpopout())
- self._header_box.append(self.__unpopout_button, hippo.PACK_END)
-
self._title = hippo.CanvasText(classes='header', text="My Desktop", font="Bold", xalign=hippo.ALIGNMENT_START, padding_left=8)
- self._header_box.append(self._title, hippo.PACK_EXPAND)
-
self._size_button = None
- self._main_box.append(self._header_box)
-
- self._stocks_box = hippo.CanvasBox(spacing=4)
+ self._stocks_box = StocksBox(spacing=4)
+ self._stocks_box.connect('notify::hidden-width', self.__on_hidden_width_changed)
+ self._stocks_box.connect('notify::visible-width', self.__on_visible_width_changed)
self._main_box.append(self._stocks_box)
- self.__theme_mgr = ThemeManager.getInstance()
- self.__theme_mgr.connect('theme-changed', self.__sync_theme)
- self.__sync_theme()
-
- self._canvas.get_context().connect('style-changed', self.__sync_opacity)
- self.__sync_opacity()
-
- gconf_client.notify_add(GCONF_PREFIX + 'expand', self._sync_size)
- self._sync_size()
-
- try:
- self.__screensaver_proxy = dbus.SessionBus().get_object('org.gnome.ScreenSaver', '/org/gnome/ScreenSaver')
- self.__screensaver_proxy.connect_to_signal('SessionIdleChanged',
- self.__on_session_idle_changed)
- except dbus.DBusException, e:
- _logger.warn("Couldn't find screensaver")
- pass
-
- self.__exchange = Exchange(['builtin://self.xml', 'builtin://search.xml'])
+ self.__exchange = Exchange(['builtin://self.xml'])
self.__exchange.connect("listings-changed", lambda *args: self.__sync_listing())
# These are hardcoded as it isn't really sensible to remove them
@@ -133,33 +157,30 @@
for metainfo in hardcoded_metas:
self.__append_metainfo(metainfo, notitle=True)
self.__self_stock = self._holders[self.__hardcoded_stocks[0]].get_pymodule()
- self.__search_stock = self._holders[self.__hardcoded_stocks[1]].get_pymodule()
+ self.__self_stock.set_panel_visible(self.__visible)
+ self.__self_stock.connect('toggle_visible', self.__on_toggle_visible)
gobject.idle_add(self.__sync_listing)
- if self.__self_stock.info_loaded:
- self.__initial_appearance()
- else:
- self.__self_stock.connect('info-loaded', lambda *args: self.__initial_appearance())
-
## visible=True means we never hide, visible=False means we "autohide" and popout
## when the hotkey or applet is used
gconf_client.notify_add(GCONF_PREFIX + 'visible', self.__sync_visible_mode)
self.__sync_visible_mode()
+ if not self.__self_stock.info_loaded:
+ self.__self_stock.connect('info-loaded', self.__on_info_loaded)
+ else:
+ self._dw.show()
+
@log_except(_logger)
- def __initial_appearance(self):
+ def __on_info_loaded(self, stock):
## This function is where we show the canvas internally; we only want this to
## happen after we've loaded information intially to avoid showing a partially-loaded
## state.
- self._canvas.show()
- self.__queue_strut()
- self.__idle_show_we_exist()
-
- @log_except()
- def __on_session_idle_changed(self, isidle):
- if not isidle:
- self.__idle_show_we_exist()
+ self._dw.show()
+ def __on_toggle_visible(self, stock):
+ self.__set_visible_mode(not self.__visible)
+
def __on_header_buttonpress(self, box, e):
_logger.debug("got shell header click: %s %s %s", e, e.button, e.modifiers)
if e.button == 2:
@@ -183,35 +204,36 @@
def __append_metainfo(self, metainfo, **kwargs):
try:
- exchange = self._holders[metainfo.srcurl]
+ holder = self._holders[metainfo.srcurl]
except KeyError, e:
- exchange = self.__exchange.render(metainfo, panel=self, **kwargs)
- _logger.debug("rendered %s: %s", metainfo.srcurl, exchange)
- if exchange:
- self._holders[metainfo.srcurl] = exchange
- if not exchange:
+ holder = self.__exchange.render(metainfo, panel=self, **kwargs)
+ _logger.debug("rendered %s: %s", metainfo.srcurl, holder)
+ if holder:
+ self._holders[metainfo.srcurl] = holder
+ if not holder:
_logger.debug("failed to load stock from %s", metainfo.srcurl)
return
- _logger.debug("adding stock %s", exchange)
- self._stocks_box.append(exchange)
+ _logger.debug("adding stock %s", holder)
+ holder.set_hidden(not self.__visible)
+ self._stocks_box.append(holder)
@log_except(_logger)
def __sync_listing(self):
_logger.debug("doing stock listing sync")
new_listed = list(self.__exchange.get_listed())
new_listed_srcurls = map(lambda mi: mi.srcurl, new_listed)
- for exchange in list(self._stocks_box.get_children()):
- if exchange.get_metainfo().srcurl in self.__hardcoded_stocks:
+ for holder in list(self._stocks_box.get_children()):
+ if holder.get_metainfo().srcurl in self.__hardcoded_stocks:
continue
- _logger.debug("unrendering %s", exchange)
+ _logger.debug("unrendering %s", holder)
- self._stocks_box.remove(exchange)
+ self._stocks_box.remove(holder)
- if exchange.get_metainfo().srcurl not in new_listed_srcurls:
- _logger.debug("removing %s", exchange)
- del self._holders[exchange.get_metainfo().srcurl]
- exchange.on_delisted()
+ if holder.get_metainfo().srcurl not in new_listed_srcurls:
+ _logger.debug("removing %s", holder)
+ del self._holders[holder.get_metainfo().srcurl]
+ holder.on_delisted()
for metainfo in new_listed:
self.__append_metainfo(metainfo)
@@ -228,6 +250,18 @@
def action_taken(self):
_logger.debug("action taken")
self.__leave_popped_out_state(immediate=True)
+
+ def __on_hidden_width_changed(self, stocks_box, paramspec):
+ _logger.debug("Hidden width is now %s", stocks_box.hidden_width)
+ if not self.__visible:
+ _logger.debug("Setting strut size to %s", stocks_box.hidden_width)
+ self._dw.strut_size = stocks_box.hidden_width
+
+ def __on_visible_width_changed(self, stocks_box, paramspec):
+ _logger.debug("Visible width is now %s", stocks_box.visible_width)
+ if self.__visible:
+ _logger.debug("Setting strut size to %s", stocks_box.visible_width)
+ self._dw.strut_size = stocks_box.visible_width
@log_except()
def __sync_orient(self, *args):
@@ -239,49 +273,11 @@
else:
gravity = gtk.gdk.GRAVITY_EAST
self._dw.set_gravity(gravity)
- self.__queue_strut()
-
- @log_except()
- def _toggle_size(self):
- _logger.debug("toggling size")
- expanded = gconf.client_get_default().get_bool(GCONF_PREFIX + 'expand')
- gconf.client_get_default().set_bool(GCONF_PREFIX + 'expand', not expanded)
-
- def _sync_size(self, *args):
- # This function should be deleted basically; we no longer support size changes.
-
- self._canvas.set_size_request(Stock.SIZE_BULL_CONTENT_PX, 42)
-
- _logger.debug("queuing resize")
- self._dw.queue_resize()
- _logger.debug("queuing strut")
- self.__queue_strut()
- _logger.debug("queuing strut complete")
def __sync_theme(self, *args):
theme = self.__theme_mgr.get_theme()
- self._canvas.set_theme(theme)
-
- def __sync_opacity(self, *args):
- style = self._canvas.get_context().get_style()
- opacity = style.get_double('opacity', False)
- if opacity == None:
- opacity = 1.0
+ self._dw.set_theme(theme)
- self._dw.set_opacity(opacity)
-
- @log_except()
- def __idle_do_strut(self):
- _logger.debug("setting strut in idle")
- self._dw.do_set_wm_strut()
- return False
-
- def __queue_strut(self):
- # TODO - this is kind of gross; we need the strut change to happen after
- # the resize, but that appears to be an ultra-low priority internally
- # so we can't easily queue something directly after.
- call_timeout_once(250, self.__idle_do_strut)
-
## There are two aspects to the sidebar state:
## the "visible" gconf key is like the old gnome-panel "autohide"
## preference. i.e. if !visible, the sidebar is normally collapsed
@@ -292,6 +288,7 @@
def __notify_stocks_of_popped_out(self):
for e in self._holders.values():
+ e.set_hidden(not self.__popped_out)
e.on_popped_out_changed(self.__popped_out)
## Shows the sidebar
@@ -299,10 +296,8 @@
if not self.__popped_out:
_logger.debug("popping out")
- self._dw.show()
# we would prefer to need this, if iconify() worked on dock windows
#self._dw.deiconify()
- self.__queue_strut()
self.__popped_out = True
self.__notify_stocks_of_popped_out()
@@ -312,52 +307,41 @@
## Hides the sidebar, possibly after a delay, only if visible mode is False
def __leave_popped_out_state(self, immediate=False):
vis = gconf.client_get_default().get_bool(GCONF_PREFIX + 'visible')
- if self.__popped_out and not vis and self.__autohide_id == 0:
- _logger.debug("enqueued autohide timeout")
- self.__autohide_id = gobject.timeout_add(immediate and 1 or 1500, self.__idle_do_hide)
+ if self.__popped_out and not vis:
+ _logger.debug("unpopping out")
- @log_except()
- def __idle_do_hide(self):
- _logger.debug("in idle hide")
- self.__autohide_id = 0
- vis = gconf.client_get_default().get_bool(GCONF_PREFIX + 'visible')
- if vis or not self.__popped_out:
- return
-
- _logger.debug("unpopping out")
- self.__popped_out = False
- ## would be better to iconify, not hide - hide withdraws the
- ## window, iconify should leave bigboard in the Ctrl+Alt+Tab
- ## order.
- ## Unfortunately, it appears metacity disallows minimize on
- ## dock windows.
- #self._dw.iconify()
- self._dw.hide()
- self.__queue_strut()
-
- self.__notify_stocks_of_popped_out()
+ self.__popped_out = False
+
+ self.__notify_stocks_of_popped_out()
- self.EmitPoppedOutChanged()
+ self.EmitPoppedOutChanged()
+ def __sync_popped_out(self):
+ if self.__visible and not self.__popped_out:
+ self.__enter_popped_out_state()
+ elif not self.__visible and self.__popped_out:
+ self.__leave_popped_out_state()
+
## syncs our current state to a change in the gconf setting for visible mode
@log_except()
def __sync_visible_mode(self, *args):
- ## unpopout button is only visible if unpopout is allowed
- vis = gconf.client_get_default().get_bool(GCONF_PREFIX + 'visible')
- self.__unpopout_button.set_visible(not vis)
-
- if vis and not self.__popped_out:
- self.__enter_popped_out_state()
- elif not vis:
- self.__leave_popped_out_state()
- if not gconf.client_get_default().get_bool(GCONF_PREFIX + 'first_time_minimize_seen'):
- dialog = FirstTimeMinimizeDialog(True)
- dialog.show_all()
-
- ## this is needed because the Sidebar widget knows about the 'visible' gconf key,
- ## and if we're not in visible mode (in autohide mode), it never sets the strut.
- ## However the Sidebar widget does not itself listen for changes on the gconf key.
- self.__queue_strut()
+ visible = gconf.client_get_default().get_bool(GCONF_PREFIX + 'visible')
+
+ if visible != self.__visible:
+ self.__visible = visible
+ self.__self_stock.set_panel_visible(visible)
+
+ if self.__visible:
+ self._dw.strut_size = self._stocks_box.visible_width
+ else:
+ self._dw.strut_size = self._stocks_box.hidden_width
+
+ if not visible:
+ if not gconf.client_get_default().get_bool(GCONF_PREFIX + 'first_time_minimize_seen'):
+ dialog = FirstTimeMinimizeDialog(True)
+ dialog.show_all()
+
+ self.__sync_popped_out()
## Pops out the sidebar, and focuses it (if the sidebar is in visible mode, only has to focus)
def __do_popout(self, xtimestamp):
@@ -370,7 +354,7 @@
## focus even if we were already shown
_logger.debug("presenting with ts %s", xtimestamp)
self._dw.present_with_time(xtimestamp)
- self.__search_stock.focus()
+ self.__self_stock.focus_search()
## Hides the sidebar, only if not in visible mode
def __do_unpopout(self):
@@ -389,6 +373,26 @@
if setting != vis:
gconf.client_get_default().set_bool(GCONF_PREFIX + 'visible', setting)
+ def __set_dock_window_shape(self):
+ if self._dw.composited:
+ return
+
+ region = gtk.gdk.Region()
+
+ for holder in self._stocks_box.get_children():
+ x, y = holder.get_context().translate_to_widget(holder)
+ width, height = holder.get_current_size()
+ region.union_with_rect(gtk.gdk.Rectangle(x, y, width, height))
+
+ bignative.window_shape_set_region(self._dw.window, region)
+
+ def __on_dock_window_size_allocate(self, dock_window, allocation):
+ if dock_window.window:
+ self.__set_dock_window_shape()
+
+ def __on_dock_window_realize(self, dock_window):
+ self.__set_dock_window_shape()
+
@dbus.service.method(BUS_IFACE_PANEL)
def EmitPoppedOutChanged(self):
_logger.debug("got emitPoppedOutChanged method call")
Copied: trunk/bigboard/core/search_entry.py (from r7400, /trunk/bigboard/stocks/search/SearchStock.py)
==============================================================================
--- /trunk/bigboard/stocks/search/SearchStock.py (original)
+++ trunk/bigboard/core/search_entry.py Sat Jun 28 00:15:52 2008
@@ -14,9 +14,9 @@
if __name__ == '__main__':
def logger(domain, priority, msg):
print msg
- libbig.logutil.init('DEBUG', ['bigboard.search.SearchStock'], '')
+ libbig.logutil.init('DEBUG', ['bigboard.SearchEntry'], '')
-_logger = logging.getLogger("bigboard.stocks.SearchStock")
+_logger = logging.getLogger("bigboard.SearchEntry")
_ICON_SIZE = 48
@@ -522,29 +522,6 @@
else:
return False
-class SearchStock(Stock):
- """Search. It's what's for dinner."""
-
- def __init__(self, *args, **kwargs):
- super(SearchStock,self).__init__(*args, **kwargs)
-
- self.__box = hippo.CanvasBox()
-
- self.__entry = SearchEntry()
- self.__widget = hippo.CanvasWidget(widget=self.__entry)
- self.__box.append(self.__widget)
- self.__empty_box = CanvasVBox()
-
- ## notify the main panel when a search result is chosen
- self.__entry.connect('match-selected', lambda obj: self._panel.action_taken())
-
- def get_content(self, size):
- return size == self.SIZE_BULL and self.__box or self.__empty_box
-
- def focus(self):
- _logger.debug("doing focus")
- self.__entry.grab_focus()
-
if __name__ == '__main__':
class TestSearchResult(search.SearchResult):
Modified: trunk/bigboard/core/stock_holder.py
==============================================================================
--- trunk/bigboard/core/stock_holder.py (original)
+++ trunk/bigboard/core/stock_holder.py Sat Jun 28 00:15:52 2008
@@ -1,9 +1,15 @@
import logging
+import math
+
+import cairo
import gobject
+import gtk
import hippo
-from bigboard.big_widgets import Arrow, Header, ThemeManager
+from bigboard.big_widgets import Arrow, Header
+from bigboard.expand_box import ExpandBox
from bigboard.stock import Stock
+from bigboard.theme_manager import ThemeManager
_logger = logging.getLogger("bigboard.StockHolder")
@@ -15,31 +21,126 @@
self.widget.show_all()
self.set_property('widget', self.widget)
-class HeaderButton(hippo.CanvasBox):
- def __init__(self):
- hippo.CanvasBox.__init__(self, box_width=40, xalign=hippo.ALIGNMENT_END,
- background_color=0x00000001)
- self.set_clickable(True)
- self.append(hippo.CanvasText(text=" "))
-
- def do_paint_below_children(self, cr, dmgbox):
- area = self.get_background_area()
- self.get_style().paint(cr, 'more-button', area.x, area.y, area.width, area.height)
-
-gobject.type_register(HeaderButton)
-
class Separator(hippo.CanvasBox):
def __init__(self):
hippo.CanvasBox.__init__(self, border_top=1, border_color=0x999999FF)
-class StockHolder(hippo.CanvasBox):
+class RotatedText(hippo.CanvasBox):
+ text = gobject.property(type=str)
+
+ def __create_layout(self, cr=None):
+ layout = self.create_layout()
+ layout.set_text(self.text)
+ layout.set_font_description(self.get_style().get_font())
+ if not cr:
+ surface = self.create_surface(cairo.CONTENT_COLOR_ALPHA, 1, 1)
+ cr = gtk.gdk.CairoContext(cairo.Context(surface))
+ cr.rotate(- math.pi / 2)
+
+ cr.update_layout(layout)
+
+ return layout
+
+ def do_paint_below_children(self, cr, rect):
+ cr2 = gtk.gdk.CairoContext(cr)
+ layout = self.__create_layout(cr2)
+ style = self.get_style()
+ hippo.cairo_set_source_rgba32(cr2, style.get_foreground_color())
+
+ width, height = layout.get_pixel_size()
+ cr2.translate(0, width)
+ cr2.rotate(- math.pi / 2)
+
+ cr2.move_to(0, 0)
+ cr2.show_layout(layout)
+
+ def do_get_content_width_request(self):
+ width, height = self.__create_layout().get_pixel_size()
+ return height, height
+
+ def do_get_content_height_request(self, width):
+ width, height = self.__create_layout().get_pixel_size()
+ return width, width
+
+class StackLayout(gobject.GObject,hippo.CanvasLayout):
+ def do_set_box(self, box):
+ self.__box = box
+
+ def do_get_width_request(self):
+ max_item_min_width = 0
+ max_item_natural_width = 0
+
+ if self.__box.active:
+ active_child = self.__box.find_box_child(self.__box.active)
+
+ for child in self.__box.get_layout_children():
+ (min_width, natural_width) = child.get_width_request()
+ if child == active_child:
+ max_item_min_width = max(max_item_min_width, min_width)
+ max_item_natural_width = max(max_item_natural_width, natural_width)
+
+ return max_item_min_width, max_item_natural_width
+
+ def do_get_height_request(self, width):
+ max_item_min_height = 0
+ max_item_natural_height = 0
+
+ if self.__box.active:
+ active_child = self.__box.find_box_child(self.__box.active)
+
+ for child in self.__box.get_layout_children():
+ if child == active_child:
+ (min_height, natural_height) = child.get_height_request(width)
+ else:
+ (_, natural_width) = child.get_width_request()
+ (min_height, natural_height) = child.get_height_request(natural_width)
+
+ max_item_min_height = max(max_item_min_height, min_height)
+ max_item_natural_height = max(max_item_natural_height, natural_height)
+
+ return max_item_min_height, max_item_natural_height
+
+ def do_allocate(self, x, y, width, height, requested_width, requested_height, origin_changed):
+ if self.__box.active:
+ active_child = self.__box.find_box_child(self.__box.active)
+
+ for child in self.__box.get_layout_children():
+ if child == active_child:
+ child.allocate(x, y, width, height, origin_changed)
+ else:
+ child.allocate(0, 0, 0, 0, origin_changed)
+
+gobject.type_register(StackLayout)
+
+class Stack(hippo.CanvasBox, hippo.CanvasItem):
+ __gtype_name__ = 'Stack'
+
+ def __init__(self, *args, **kwargs):
+ hippo.CanvasBox.__init__(self, *args, **kwargs)
+ self.set_layout(StackLayout())
+ self.active = None
+
+ def add(self, child):
+ self.append(child, hippo.PACK_EXPAND)
+ if not self.active:
+ self.set_active(child)
+
+ def set_active(self, child):
+ self.active = child
+ self.emit_request_changed()
+ self.emit_paint_needed(0, 0, -1, -1)
+
+class StockHolder(ExpandBox):
"""A renderer for stocks."""
- def __init__(self, metainfo, env, pymodule=None, is_notitle=False, panel=None, stylesheet=None):
- hippo.CanvasBox.__init__(self,
- orientation=hippo.ORIENTATION_VERTICAL,
- spacing=4)
- self.__size = None
+ def __init__(self, metainfo, env, pymodule=None, is_notitle=False, panel=None, stylesheet=None, hidden=False):
+ super(StockHolder, self).__init__(orientation=hippo.ORIENTATION_HORIZONTAL,
+ classes='stock')
+
+ self.hidden = hidden
+ self.__mouseover = False
+ self.__appears_hidden = False
+
self.__metainfo = metainfo
self.__env = env
self.__pymodule = pymodule
@@ -48,41 +149,82 @@
self.__content = None
self.__ticker_text = None
self.__ticker_container = None
- self.__mini_more_button = None
- self.__sep = Separator()
- self.append(self.__sep)
+
+ self.__stack = Stack()
+ self.append(self.__stack)
+ self.__stack.connect('motion-notify-event', self.__on_stack_motion_notify)
+ self.__visible_contents = hippo.CanvasBox(orientation=hippo.ORIENTATION_VERTICAL,
+ box_width=Stock.SIZE_BULL_CONTENT_PX)
+
+ self.__stack.add(self.__visible_contents)
+
self.__expanded = True
if not is_notitle:
- self.__ticker_container = Header()
- self.__ticker_text = hippo.CanvasText(classes='header', text=metainfo.title, xalign=hippo.ALIGNMENT_START)
+ self.__ticker_container = hippo.CanvasBox(orientation=hippo.ORIENTATION_HORIZONTAL)
+
+ header_left = hippo.CanvasBox(orientation=hippo.ORIENTATION_HORIZONTAL, classes='stock-header-left')
+ self.__ticker_container.append(header_left, hippo.PACK_EXPAND)
+
+ self.__ticker_text = hippo.CanvasText(text=metainfo.title, xalign=hippo.ALIGNMENT_START)
self.__ticker_text.set_clickable(True)
self.__ticker_text.connect("activated", lambda text: self.__toggle_expanded())
- self.__ticker_container.append(self.__ticker_text, hippo.PACK_EXPAND)
+ header_left.append(self.__ticker_text, hippo.PACK_EXPAND)
self.__ticker_arrow = Arrow(Arrow.LEFT, padding=4)
self.__ticker_arrow.connect("activated", lambda text: self.__toggle_expanded())
- self.__ticker_container.append(self.__ticker_arrow)
+ header_left.append(self.__ticker_arrow)
if pymodule and pymodule.has_more_button():
- more_button = HeaderButton()
+ more_button = hippo.CanvasBox(classes='stock-header-right')
+ more_button.set_clickable(True)
+ more_button_label = hippo.CanvasText()
+ more_button.append(more_button_label)
+
+ def update_more_button_text(pymodule, *args):
+ more_button_label.props.text = pymodule.more_button_text
+
+ pymodule.connect('notify::more-button-text', update_more_button_text)
+ update_more_button_text(pymodule)
+
more_button.connect("activated", lambda l: pymodule.on_more_clicked())
self.__ticker_container.append(more_button)
-
- self.append(self.__ticker_container)
+
+ self.__visible_contents.append(self.__ticker_container)
self.__theme_mgr = ThemeManager.getInstance()
self.__theme_mgr.connect('theme-changed', self.__sync_theme)
- self.__stockbox = hippo.CanvasBox()
- self.append(self.__stockbox)
+ self.__stockbox = hippo.CanvasBox(classes='stock-main')
+ self.__visible_contents.append(self.__stockbox)
if pymodule:
pymodule.connect('visible', self.__render_pymodule)
self.__render_pymodule()
else:
- self.__render_google_gadget()
+ self.__render_google_gadget()
+
+ self.__bottom = hippo.CanvasBox(classes='stock-bottom', orientation=hippo.ORIENTATION_HORIZONTAL, xalign=hippo.ALIGNMENT_CENTER)
+ self.__visible_contents.append(self.__bottom)
+
+ grippy = hippo.CanvasBox(classes='stock-grippy', box_width=20, box_height=8)
+ self.__bottom.append(grippy)
+ self.__hidden_title = hippo.CanvasBox(classes='stock-hidden')
+ self.__stack.add(self.__hidden_title)
+
+ hidden_text = RotatedText(text=metainfo.title, xalign=hippo.ALIGNMENT_START)
+ self.__hidden_title.append(hidden_text)
+
+ self.__update_appears_hidden()
self.__sync_visibility()
+ def __on_stack_motion_notify(self, item, event):
+ if event.detail == hippo.MOTION_DETAIL_ENTER:
+ self.__mouseover = True
+ self.__update_appears_hidden()
+ elif event.detail == hippo.MOTION_DETAIL_LEAVE:
+ self.__mouseover = False
+ self.__update_appears_hidden()
+
def __sync_theme(self, *args):
if self.__content:
if self.__stylesheet:
@@ -90,16 +232,63 @@
self.__content.set_theme(theme)
def on_delisted(self):
- _logger.debug("on_delisted exchange %s" % (str(self)))
+ _logger.debug("on_delisted")
self.__unrender_pymodule()
def on_popped_out_changed(self, popped_out):
self.__pymodule.on_popped_out_changed(popped_out)
+ def get_hidden_width(self):
+ box_child = self.__hidden_title.get_parent().find_box_child(self.__hidden_title)
+ minimum, natural = box_child.get_width_request()
+
+ return natural
+
+ def get_visible_width(self):
+ box_child = self.__visible_contents.get_parent().find_box_child(self.__visible_contents)
+ minimum, natural = box_child.get_width_request()
+
+ return natural
+
+ def get_current_size(self):
+ if self.__appears_hidden:
+ return self.__hidden_title.get_allocation()
+ else:
+ width, height = self.__visible_contents.get_allocation()
+ if not self.__expanded:
+ # Bit of a hack ... the box __visible_contents is allocated full-height
+ # but it's not filled up
+ _, h1 = self.__ticker_container.get_allocation()
+ _, h2 = self.__bottom.get_allocation()
+ height = h1 + h2
+ return width, height
+
+ def __update_appears_hidden(self):
+ appears_hidden = self.hidden and not self.__mouseover and (not self.__pymodule or
+ not self.__pymodule.active)
+ if appears_hidden == self.__appears_hidden:
+ return
+
+ self.__appears_hidden = appears_hidden
+
+ if self.get_context():
+ self.animate(0.3333)
+
+ if self.__appears_hidden:
+ self.__stack.set_active(self.__hidden_title)
+ else:
+ self.__stack.set_active(self.__visible_contents)
+
+ def set_hidden(self, hidden):
+ self.hidden = hidden
+ self.__update_appears_hidden()
+
def __sync_visibility(self):
- self.set_child_visible(self.__stockbox, self.__expanded)
+ if self.get_context():
+ self.animate(0.3333)
+ self.__stockbox.set_visible(self.__expanded)
if self.__ticker_container:
- self.__ticker_container.set_child_visible(self.__ticker_arrow, not self.__expanded)
+ self.__ticker_arrow.set_visible(not self.__expanded)
def __toggle_expanded(self):
self.__expanded = not self.__expanded
@@ -114,25 +303,22 @@
def __render_google_gadget(self):
rendered = GoogleGadgetContainer(self.__metainfo, self.__env)
self.__stockbox.append(rendered)
-
+
+ def __on_stock_active_changed(self, pymodule):
+ self.__update_appears_hidden()
+
def __render_pymodule(self, *args):
- self.__size = size = Stock.SIZE_BULL
self.__stockbox.remove_all()
- self.__pymodule.set_size(size)
+ self.__pymodule.set_size(Stock.SIZE_BULL)
+
+ self.__active_changed_handler = self.__pymodule.connect('active-changed', self.__on_stock_active_changed)
- self.__content = self.__pymodule.get_content(size)
+ self.__content = self.__pymodule.get_content(Stock.SIZE_BULL)
self.__sync_theme()
if self.__ticker_container:
- self.set_child_visible(self.__ticker_container, not not self.__content)
- self.set_child_visible(self.__sep,
- (not not self.__content) and \
- ((self.__ticker_container and size == Stock.SIZE_BEAR) \
- or (size == Stock.SIZE_BULL
- and ((not self.__ticker_container) or (self.__pymodule.get_ticker() == "-")))))
- if self.__mini_more_button:
- self.set_child_visible(self.__mini_more_button, size == Stock.SIZE_BEAR)
- self.set_child_visible(self.__stockbox, not not self.__content)
+ self.__ticker_container.set_visible(not not self.__content)
+ self.__stockbox.set_visible(not not self.__content)
if not self.__content:
_logger.debug("no content for stock %s", self.__pymodule)
return
@@ -140,15 +326,15 @@
padding = 4
self.__stockbox.set_property("padding_left", padding)
self.__stockbox.set_property("padding_right", padding)
- if self.__ticker_text:
- self.set_child_visible(self.__ticker_container, size == Stock.SIZE_BULL)
def __unrender_pymodule(self):
if not self.__pymodule:
- _logger.debug("Not a pymodule exchange")
+ _logger.debug("No pymodule")
return
+
+ self.__pymodule.disconnect(self.__active_changed_handler)
- _logger.debug("delisting pymodule %s" % (str(self.__pymodule)))
+ _logger.debug("delisting pymodule %s", self.__pymodule)
self.__pymodule.on_delisted()
self.__pymodule = None
Added: trunk/bigboard/dock_window.py
==============================================================================
--- (empty file)
+++ trunk/bigboard/dock_window.py Sat Jun 28 00:15:52 2008
@@ -0,0 +1,231 @@
+import hippo
+import gobject
+import gtk
+
+_SPACING = 5
+
+class RootWindowWatcher(gtk.Invisible):
+ """Class to track properties of the root window.
+
+ The tracking is a distinctly hacky; what we do is set the user data of the root window
+ to point to an GtkInvisible and catch the property-notify events there, since we can't use
+ gdk_window_add_filter() from Python. If someone else uses the same trick in the
+ same process, we'll break.
+
+ """
+
+ __gsignals__ = {
+ 'realize' : 'override',
+ 'unrealize' : 'override',
+ 'workarea-changed' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()),
+ }
+
+ @staticmethod
+ def get_for_screen(screen):
+ watcher = screen.get_data("RootWindowWatcher")
+ if watcher == None:
+ watcher = RootWindowWatcher(screen)
+ screen.set_data("RootWindowWatcher", watcher)
+
+ return watcher
+
+ def __init__(self, screen):
+ """Don't call this, call get_for_screen() instead. (Might be possible to make
+ a singleton with __new__, but the GObject interaction could be tricky.)"""
+
+ super(RootWindowWatcher, self).__init__()
+ self.set_screen(screen)
+
+ def do_realize(self):
+ super(RootWindowWatcher, self).do_realize(self)
+
+ screen = self.get_screen()
+ rootw = screen.get_root_window()
+ self.__old_events = rootw.get_events()
+
+ rootw.set_events(self.__old_events | gtk.gdk.PROPERTY_CHANGE_MASK)
+ rootw.set_user_data(self)
+
+ self.__compute_workarea()
+
+ def do_unrealize(self):
+ rootw.set_events(self.__old_events)
+ rootw.set_user_data(None)
+
+ super(RootWindowWatcher, self).do_unrealize(self)
+
+ def do_property_notify_event(self, event):
+ if event.atom == "_NET_WORKAREA":
+ old_workarea = self.__workarea
+ self.__compute_workarea()
+ if (self.__workarea != old_workarea):
+ self.emit("workarea-changed")
+
+ def __compute_workarea(self):
+ screen = self.get_screen()
+ rootw = screen.get_root_window()
+ prop = rootw.property_get("_NET_WORKAREA")
+ (_, _, workarea) = prop
+ self.__workarea = (workarea[0], workarea[1], workarea[2], workarea[3])
+
+ def get_workarea(self):
+ return self.__workarea
+
+class DockWindow(hippo.CanvasWindow):
+ __gsignals__ = {
+ 'realize' : 'override',
+ 'screen-changed' : 'override',
+ 'size-allocate' : 'override',
+ 'show' : 'override',
+ }
+
+ def __init__(self, edge_gravity=gtk.gdk.GRAVITY_WEST):
+ hippo.CanvasWindow.__init__(self)
+
+ self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK)
+ self.set_decorated(False)
+ self.set_resizable(False)
+
+ self.composited = False
+
+ self.edge_gravity = edge_gravity
+ self.__strut_size = -1
+ self.__watcher = None
+
+ def set_composited(self, composited):
+ if composited == self.composited:
+ return
+
+ self.composited = composited
+
+ if composited:
+ colormap = self.get_screen().get_rgba_colormap()
+
+ if colormap == None:
+ colormap = self.get_screen().get_rgb_colormap()
+
+ self.set_colormap(colormap)
+
+ def do_show(self):
+ self.__update_watcher()
+ super(DockWindow, self).do_show(self)
+
+ def do_screen_changed(self, old_screen):
+ super(DockWindow, self).do_screen_changed(old_screen)
+
+ self.__update_watcher()
+
+ def __set_strut(self):
+ strut_size = self.__strut_size
+
+ if self.__strut_size < 0:
+ if (self.edge_gravity == gtk.gdk.GRAVITY_WEST or
+ self.edge_gravity == gtk.gdk.GRAVITY_EAST):
+ strut_size = self.allocation.width
+ else:
+ strut_size = self.allocation.height
+
+ strut_size += _SPACING
+
+ if self.edge_gravity == gtk.gdk.GRAVITY_WEST:
+ # left, right, top, bottom
+ propvals = [strut_size, 0, 0, 0]
+ elif self.edge_gravity == gtk.gdk.GRAVITY_EAST:
+ propvals = [0, strut_size, 0, 0]
+ elif self.edge_gravity == gtk.gdk.GRAVITY_NORTH:
+ propvals = [0, 0, strut_size, 0]
+ elif self.edge_gravity == gtk.gdk.GRAVITY_SOUTH:
+ propvals = [0, 0, 0, strut_size]
+
+ self.window.property_change("_NET_WM_STRUT",
+ "CARDINAL",
+ 32,
+ gtk.gdk.PROP_MODE_REPLACE,
+ propvals)
+
+ def do_size_allocate(self, allocation):
+ super(DockWindow, self).do_size_allocate(self, allocation)
+ if self.__strut_size < 0 and self.flags() & gtk.REALIZED:
+ self.__set_strut()
+
+ def do_realize(self):
+ super(DockWindow, self).do_realize(self)
+ self.__set_strut()
+
+ def __update_watcher(self):
+ if self.__watcher != None:
+ self.__watcher.disconnect(self.__watcher_handler_id)
+ self.__watcher = RootWindowWatcher.get_for_screen(self.get_screen())
+ self.__watcher_handler_id = self.__watcher.connect('workarea-changed', self.__on_workarea_changed)
+ self.__on_workarea_changed(self.__watcher)
+
+ def __on_workarea_changed(self, watcher):
+ (workarea_x,workarea_y,workarea_width,workarea_height) = watcher.get_workarea()
+
+ if (self.edge_gravity == gtk.gdk.GRAVITY_WEST or
+ self.edge_gravity == gtk.gdk.GRAVITY_NORTH):
+ monitor = self.get_screen().get_monitor_at_point(workarea_x, workarea_y)
+ elif (self.edge_gravity == gtk.gdk.GRAVITY_EAST or
+ self.edge_gravity == gtk.gdk.GRAVITY_SOUTH):
+ monitor = self.get_screen().get_monitor_at_point(workarea_x + workarea_height - 1,
+ workarea_y + workarea_width - 1)
+
+ (monitor_x, monitor_y, monitor_width, monitor_height) = self.get_screen().get_monitor_geometry(monitor)
+ request_width, request_height = self.size_request()
+
+ if (self.edge_gravity == gtk.gdk.GRAVITY_WEST or
+ self.edge_gravity == gtk.gdk.GRAVITY_EAST):
+ y = workarea_y
+# height = workarea_height
+ height = monitor_y + monitor_height - y
+
+ if self.edge_gravity == gtk.gdk.GRAVITY_WEST:
+ x = 0
+ else:
+ x = monitor_x + monitor_width - request_width
+
+ at_top = y == monitor_y
+ at_bottom = y + height == monitor_y + monitor_height
+
+ if not at_top:
+ y += _SPACING
+ height -= _SPACING
+
+ if not at_bottom:
+ height -= _SPACING
+
+ self.set_size_request(-1, height)
+
+ elif (self.edge_gravity == gtk.gdk.GRAVITY_NORTH or
+ self.edge_gravity == gtk.gdk.GRAVITY_SOUTH):
+ x = workarea_x
+ width = workarea_width
+
+ at_left = x == monitor_x
+ at_right = x + width == monitor_x + monitor_width
+
+ if self.edge_gravity == gtk.gdk.GRAVITY_NORTH:
+ y = 0
+ else:
+ y = monitor_y + monitor_height - request_height
+
+ if not at_left:
+ x += _SPACING
+ width -= _SPACING
+
+ if not at_right:
+ width -= _SPACING
+
+ self.set_size_request(width, -1)
+
+ self.move(x, y)
+
+ def get_strut_size(self):
+ return self.__strut_size
+
+ def set_strut_size(self, size):
+ self.__strut_size = size
+ if self.flags() & gtk.REALIZED:
+ self.__set_strut()
+
+ strut_size = gobject.property(type=int, getter=get_strut_size, setter=set_strut_size)
Added: trunk/bigboard/expand_box.py
==============================================================================
--- (empty file)
+++ trunk/bigboard/expand_box.py Sat Jun 28 00:15:52 2008
@@ -0,0 +1,140 @@
+import logging
+
+import cairo
+import gtk
+import gobject
+import hippo
+
+_logger = logging.getLogger("bigboard.ExpandBox")
+
+class _ExpandAnimation(hippo.Animation):
+ __gsignals__ = { 'event': 'override' }
+
+ def __init__(self, box, duration):
+ super(_ExpandAnimation, self).__init__()
+
+ self.__box = box
+ self.add_event(0, duration)
+
+ def do_event(self, id, fraction):
+ if fraction == 1.0:
+ self.__box._animation_finished()
+ else:
+ self.__box._animation_step(fraction)
+
+class ExpandBox(hippo.CanvasBox, hippo.CanvasItem):
+ __gtype_name__ = 'HippoExpandBox'
+
+ def __init__(self, **kwargs):
+ hippo.CanvasBox.__init__(self, **kwargs)
+ self.__animation = None
+ self.__frame_allocate_pending = False
+
+ def do_get_width_request(self):
+ minimum, natural = hippo.CanvasBox.do_get_width_request(self)
+ if self.__animation:
+ old_minimum, old_natural = self.__start_width_request
+ fraction = self.__animation_fraction
+ minimum = int(0.5 + minimum * fraction + old_minimum * (1 - fraction))
+ natural = int(0.5 + natural * fraction + old_natural * (1 - fraction))
+
+ return minimum, natural
+
+ def do_get_height_request(self, for_width):
+ minimum, natural = hippo.CanvasBox.do_get_height_request(self, for_width)
+ if self.__animation:
+ old_minimum, old_natural = self.__start_height_request
+ fraction = self.__animation_fraction
+ minimum = int(0.5 + minimum * fraction + old_minimum * (1 - fraction))
+ natural = int(0.5 + natural * fraction + old_natural * (1 - fraction))
+
+ return minimum, natural
+
+ def do_paint(self, cr, rect):
+ if self.__animation:
+ new_surface = cr.get_target().create_similar(cairo.CONTENT_COLOR_ALPHA,
+ rect.width, rect.height)
+ new_cr = gtk.gdk.CairoContext(cairo.Context(new_surface))
+ new_cr.save()
+ new_cr.set_operator(cairo.OPERATOR_CLEAR)
+ new_cr.paint()
+ new_cr.restore()
+ new_cr.translate(- rect.x, - rect.y)
+ hippo.CanvasBox.do_paint(self, new_cr, rect)
+
+ tmp_surface = cr.get_target().create_similar(cairo.CONTENT_COLOR_ALPHA,
+ rect.width, rect.height)
+ tmp_cr = gtk.gdk.CairoContext(cairo.Context(tmp_surface))
+
+ tmp_cr.set_source_surface(self.__animation_surface, - rect.x, - rect.y)
+ tmp_cr.set_operator(cairo.OPERATOR_SOURCE)
+ tmp_cr.paint_with_alpha(1 - self.__animation_fraction)
+
+ tmp_cr.set_source_surface(new_surface, 0, 0)
+ tmp_cr.set_operator(cairo.OPERATOR_ADD)
+ tmp_cr.paint_with_alpha(self.__animation_fraction)
+
+ cr.set_source_surface(tmp_surface, rect.x, rect.y)
+ cr.paint()
+ else:
+ hippo.CanvasBox.do_paint(self, cr, rect)
+
+ def do_allocate(self, new_width, new_height, origin_changed):
+ if self.__frame_allocate_pending:
+ self.__frame_allocate_pending = False
+ if not origin_changed:
+ old_height, old_width = self.get_allocation()
+ self.emit_paint_needed(0, 0,
+ max(old_height, new_height),
+ max(old_width, new_width))
+
+ hippo.CanvasBox.do_allocate(self, new_width, new_height, origin_changed)
+
+ def animate(self, duration):
+ # First snapshot the current state (which may be an animated state)
+
+ width, height = self.get_allocation()
+ start_width_request = self.get_width_request()
+ start_height_request = self.get_height_request(width)
+
+ animation_surface = self.get_context().create_surface(cairo.CONTENT_COLOR_ALPHA,
+ width, height)
+ cr = gtk.gdk.CairoContext(cairo.Context(animation_surface))
+ cr.save()
+ cr.set_operator(cairo.OPERATOR_CLEAR)
+ cr.paint()
+ cr.restore()
+ r = hippo.Rectangle(0, 0, width, height)
+ self.process_paint(cr,
+ hippo.Rectangle(0, 0, width, height),
+ 0, 0)
+
+ # Then cancel any current animation
+
+ if self.__animation:
+ self.__animation.cancel()
+ self.__animation = None
+ self.__animation_surface = None
+
+ # And start the new animation from the current position
+
+ self.__start_width_request = start_width_request
+ self.__start_height_request = start_height_request
+
+ self.__animation_surface = animation_surface
+
+ self.__animation = _ExpandAnimation(self, duration)
+ self.__animation_fraction = 0.
+ self.get_animation_manager().add_animation(self.__animation)
+
+ def _animation_step(self, fraction):
+ self.__animation_fraction = fraction
+ self.__frame_allocate_pending = True
+ self.emit_request_changed()
+
+ def _animation_finished(self):
+ self.__animation = None
+ self.__animation_surface = None
+ self.__frame_allocate_pending = True
+ self.emit_request_changed()
+
Modified: trunk/bigboard/stock.py
==============================================================================
--- trunk/bigboard/stock.py (original)
+++ trunk/bigboard/stock.py Sat Jun 28 00:15:52 2008
@@ -23,7 +23,8 @@
class Stock(gobject.GObject):
__gsignals__ = {
- "visible" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_BOOLEAN,))
+ "visible" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_BOOLEAN,)),
+ "active-changed" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ())
}
"""An item that can be placed on the big board. Has
two primary properties: id and ticker. The id is
@@ -53,8 +54,10 @@
self._panel = panel
self._bull_widgets = {}
self._size = Stock.SIZE_BULL
+ self.active = False
self.__more_button_cb = None
+ self.more_button_text = "More"
# For use in subclasses as well
self._logger = logging.getLogger('bigboard.stocks.' + self._id)
@@ -91,12 +94,24 @@
def get_panel(self):
return self._panel
- def _add_more_button(self, cb):
+ def _add_more_button(self, cb, text=None):
+ if text != None:
+ self.more_button_text = text
self.__more_button_cb = cb
+
+ def _set_active(self, active):
+ """Used to set whether the stock is being manipulated at the moment by the user.
+
+ The stock will not be autohidden when active.
+
+ """
+ if self.active != active:
+ self.active = active
+ self.emit('active-changed')
def has_more_button(self):
return bool(self.__more_button_cb)
-
+
def on_more_clicked(self):
assert(self.__more_button_cb)
self._panel.action_taken()
@@ -125,6 +140,8 @@
def get_content(self, size):
raise NotImplementedError()
+ more_button_text = gobject.property(type=str)
+
class AbstractMugshotStock(Stock):
"""An abstract class for stocks which use Mugshot.."""
def __init__(self, *args, **kwargs):
Modified: trunk/bigboard/stocks/files/FilesStock.py
==============================================================================
--- trunk/bigboard/stocks/files/FilesStock.py (original)
+++ trunk/bigboard/stocks/files/FilesStock.py Sat Jun 28 00:15:52 2008
@@ -450,24 +450,29 @@
def remove_google_data(self, gobj):
self.__remove_files_for_key(gobj)
+
+ def __close_slideout(self):
+ self.__slideout.destroy()
+ self.__slideout = None
+ self.__slideout_target = None
+ self._set_active(False)
def on_file_activated(self, fobj, lnk, from_bigboard=True):
_logger.debug("got file activated: %s", fobj)
if self.__slideout is not None:
- self.__slideout.destroy()
- self.__slideout = None
+ self.__close_slideout()
if fobj == self.__slideout_target and \
self.__last_slideout_event_time == gtk.get_current_event_time():
self.__slideout_target = None
return
- self.__slideout_target = fobj
+ self._set_active(True)
+ self.__slideout_target = fobj
self.__slideout = FileSlideout(fobj, stylesheet=self.get_path('slideout.css'))
def on_slideout_close(s, action_taken):
self.__last_slideout_event_time = gtk.get_current_event_time()
if action_taken:
self._panel.action_taken()
- s.destroy()
- self.__slideout = None
+ self.__close_slideout()
self.__slideout.connect('close', on_slideout_close)
item = lnk.link
coords = item.get_context().translate_to_screen(item)
@@ -477,9 +482,7 @@
else:
coord_y = coord_y + 20
if not self.__slideout.slideout_from(coord_x, coord_y):
- self.__slideout.destroy()
- self.__slideout = None
- self.__slideout_target = None
+ self.__close_slideout()
return
def __on_documents_load(self, document_entries, gobj):
Modified: trunk/bigboard/stocks/mail/MailStock.py
==============================================================================
--- trunk/bigboard/stocks/mail/MailStock.py (original)
+++ trunk/bigboard/stocks/mail/MailStock.py Sat Jun 28 00:15:52 2008
@@ -376,18 +376,21 @@
else:
self._login_button.set_property('text', google_stock.LOGIN_TO_GOOGLE_STRING)
self._box.set_child_visible(self._login_button, True)
-
+
def show_slideout(self, widget):
def on_slideout_close(s, action_taken):
self.__last_slideout_event_time = gtk.get_current_event_time()
if action_taken:
self._panel.action_taken()
s.destroy()
+ self._set_active(False)
+ self._set_active(True)
self.__slideout.connect('close', on_slideout_close)
y = widget.get_context().translate_to_screen(widget)[1]
if not self.__slideout.slideout_from(204, y):
self.__slideout.destroy()
self.__slideout = None
+ self._set_active(False)
return
def create_label_slideout(self, widget, hippo_event, gobj):
Modified: trunk/bigboard/stocks/people/PeopleStock.py
==============================================================================
--- trunk/bigboard/stocks/people/PeopleStock.py (original)
+++ trunk/bigboard/stocks/people/PeopleStock.py Sat Jun 28 00:15:52 2008
@@ -6,7 +6,7 @@
import bigboard
from bigboard.people_tracker import PeopleTracker, sort_people
-from bigboard.stock import AbstractMugshotStock
+from bigboard.stock import AbstractMugshotStock, Stock
import bigboard.slideout
import bigboard.search as search
import bigboard.libbig as libbig
@@ -131,6 +131,7 @@
self._panel.action_taken()
self.__slideout.destroy()
self.__slideout = None
+ self._set_active(False)
def __handle_item_pressed(self, item, event):
self.__in_slideout_close_event = self.__last_slideout_event_time == gtk.get_current_event_time()
@@ -146,6 +147,7 @@
self.__in_slideout_close_event = False
+ self._set_active(True)
self.__slideout = bigboard.slideout.Slideout()
self.__current_slideout = item
item_x, item_y = item.get_screen_coords()
@@ -160,7 +162,8 @@
self.__slideout.connect("close", self.__close_slideout)
try:
success = False
- success = self.__slideout.slideout_from(item_x + item.get_allocation()[0] + 4, item_y + y_fixup)
+ success = self.__slideout.slideout_from(Stock.SIZE_BULL_CONTENT_PX, item_y + y_fixup)
+# success = self.__slideout.slideout_from(item_x + item.get_allocation()[0] + 4, item_y + y_fixup)
finally:
if not success:
self.__close_slideout()
Modified: trunk/bigboard/stocks/self.xml
==============================================================================
--- trunk/bigboard/stocks/self.xml (original)
+++ trunk/bigboard/stocks/self.xml Sat Jun 28 00:15:52 2008
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Module>
- <ModulePrefs title="Self"
+ <ModulePrefs title="My Desktop"
author="Red Hat, Inc."
author_email="online-desktop-list gnome org"
author_affiliation="Red Hat, Inc."
Modified: trunk/bigboard/stocks/self/SelfStock.py
==============================================================================
--- trunk/bigboard/stocks/self/SelfStock.py (original)
+++ trunk/bigboard/stocks/self/SelfStock.py Sat Jun 28 00:15:52 2008
@@ -16,6 +16,7 @@
from bigboard.stock import Stock, AbstractMugshotStock
from bigboard.big_widgets import CanvasMugshotURLImage, PhotoContentItem, CanvasVBox, CanvasHBox
from bigboard.big_widgets import ActionLink, IconLink, Separator
+from bigboard.core.search_entry import SearchEntry
import bigboard.google
import portfoliomanager
@@ -254,7 +255,8 @@
class SelfStock(AbstractMugshotStock):
"""Shows a user's Mugshot personal information."""
__gsignals__ = {
- "info-loaded" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [])
+ "info-loaded" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []),
+ "toggle-visible" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [])
}
def __init__(self, *args, **kwargs):
super(SelfStock,self).__init__(*args, **kwargs)
@@ -290,6 +292,11 @@
self._box.append(self._signin)
self._signin.connect("button-press-event", lambda signin, event: self.__do_account())
+ self._search_entry = SearchEntry()
+ self._box.append(hippo.CanvasWidget(widget=self._search_entry))
+
+ self._add_more_button(self.__on_more_button, u"\u00bb")
+
self.__myself = None
self.info_loaded = False
@@ -360,6 +367,12 @@
myself.connect(self.__on_self_changed)
self.__on_self_changed(myself)
self.__info_now_loaded()
+
+ def set_panel_visible(self, panel_visible):
+ self.more_button_text = u"\u00ab" if panel_visible else u"\u00bb"
+
+ def __on_more_button(self):
+ self.emit("toggle_visible")
def __do_slideout(self, slideout, widget=None):
widget_src = widget or self._box
@@ -402,12 +415,14 @@
self.__last_slideout_event_time = gtk.get_current_event_time()
self.__slideout.destroy()
self.__slideout = None
+ self._set_active(False)
return
if self.__last_slideout_event_time == gtk.get_current_event_time():
return
self.__create_fus_proxy()
+ self._set_active(True)
self.__slideout = SelfSlideout(self, self.__myself, fus=self.__fus_service, logger=_logger)
self.__slideout.connect('account', lambda s: self.__do_account())
self.__slideout.connect('sidebar-controls', lambda s: self.__do_sidebar_controls())
@@ -425,6 +440,9 @@
def set_size(self, size):
super(SelfStock, self).set_size(size)
self._namephoto_box.set_size(size)
+
+ def focus_search(self):
+ self._search_entry.grab_focus()
def __on_self_changed(self, myself):
_logger.debug("self (%s) changed", myself.resource_id)
Modified: trunk/bigboard/theme_manager.py
==============================================================================
--- trunk/bigboard/theme_manager.py (original)
+++ trunk/bigboard/theme_manager.py Sat Jun 28 00:15:52 2008
@@ -1,9 +1,11 @@
import logging
+import os
import re
import weakref
import gconf
import gobject
+import gtk
import hippo
from bigboard.globals import GCONF_PREFIX
@@ -18,6 +20,8 @@
def __init__(self):
super(ThemeManager, self).__init__()
self.__class__.instance = weakref.ref(self)
+ screen = gtk.gdk.screen_get_default()
+ self.composited = screen.is_composited() and screen.get_rgba_colormap()
self.__default_theme = None
self.__theme = None
gconf.client_get_default().notify_add(GCONF_PREFIX + 'theme', self.__sync_theme)
@@ -50,7 +54,14 @@
is_default = True
theme_engine = package.getInstance()
- stylesheet_name = re.sub(r"__init__.pyc?$", "theme.css", package.__file__)
+
+ if self.composited:
+ stylesheet_name = re.sub(r"__init__.pyc?$", "theme-alpha.css", package.__file__)
+ else:
+ stylesheet_name = re.sub(r"__init__.pyc?$", "theme-solid.css", package.__file__)
+
+ if not os.path.exists(stylesheet_name):
+ stylesheet_name = re.sub(r"__init__.pyc?$", "theme.css", package.__file__)
theme = hippo.CanvasTheme(theme_engine = theme_engine, theme_stylesheet = stylesheet_name)
if is_default and self.__default_theme == None:
Added: trunk/bigboard/themes/fedora/grippy.png
==============================================================================
Binary file. No diff available.
Added: trunk/bigboard/themes/fedora/stock-bottom-alpha.svg
==============================================================================
--- (empty file)
+++ trunk/bigboard/themes/fedora/stock-bottom-alpha.svg Sat Jun 28 00:15:52 2008
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="50"
+ height="17"
+ id="svg2715"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="bottom.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2717">
+ <linearGradient
+ id="linearGradient3249">
+ <stop
+ style="stop-color:#577e9a;stop-opacity:1;"
+ offset="0"
+ id="stop3251" />
+ <stop
+ style="stop-color:#416782;stop-opacity:1;"
+ offset="1"
+ id="stop3253" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3225">
+ <stop
+ style="stop-color:#3e6179;stop-opacity:1;"
+ offset="0"
+ id="stop3227" />
+ <stop
+ style="stop-color:#839bab;stop-opacity:1;"
+ offset="1"
+ id="stop3229" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3531">
+ <stop
+ style="stop-color:#bcbcbc;stop-opacity:0.78431374;"
+ offset="0"
+ id="stop3533" />
+ <stop
+ style="stop-color:#0000ff;stop-opacity:0.50196081;"
+ offset="1"
+ id="stop3535" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2723" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3537"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3162"
+ gradientUnits="userSpaceOnUse"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45" />
+ <inkscape:perspective
+ id="perspective3204"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3225"
+ id="linearGradient3247"
+ x1="25"
+ y1="20"
+ x2="25"
+ y2="39"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3249"
+ id="linearGradient3255"
+ x1="25"
+ y1="38"
+ x2="25"
+ y2="24"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.313708"
+ inkscape:cx="33.911162"
+ inkscape:cy="11.066167"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ showborder="true"
+ inkscape:window-width="1400"
+ inkscape:window-height="1000"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showguides="true"
+ inkscape:guide-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2725"
+ visible="true"
+ enabled="true"
+ spacingx="1px"
+ spacingy="1px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata2720">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-33)">
+ <path
+ style="fill:url(#linearGradient3255);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1,24 L 1,35 L 5,39 L 45,39 L 49,35 L 49,24 L 1,24 z"
+ transform="translate(0,10)"
+ id="path3529"
+ sodipodi:nodetypes="ccccccc" />
+ <g
+ id="g2388"
+ style="enable-background:new">
+ <path
+ style="opacity:1;fill:#414d55;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;comp-op:plus"
+ d="M 0,23 L 0,32.5 C 0,36.646351 3.3536486,40 7.5,40 L 42.5,40 C 46.646351,40 50,36.646351 50,32.5 L 50,23 L 49,23 L 49,32.5 C 49,36.109649 46.109649,39 42.5,39 L 7.5,39 C 3.8903514,39 1,36.109649 1,32.5 L 1,23 L 0,23 z"
+ transform="translate(0,10)"
+ id="rect3509"
+ sodipodi:nodetypes="ccccccccccccc" />
+ <path
+ style="opacity:1;fill:url(#linearGradient3247);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;comp-op:plus"
+ d="M 1,23 L 1,32.5 C 1,36.092351 3.9076486,39 7.5,39 L 42.5,39 C 46.092351,39 49,36.092351 49,32.5 L 49,23 L 48,23 L 48,32.5 C 48,35.555649 45.555649,38 42.5,38 L 7.5,38 C 4.4443514,38 2,35.555649 2,32.5 L 2,23 L 1,23 z"
+ transform="translate(0,10)"
+ id="rect3511"
+ sodipodi:nodetypes="ccccccccccccc" />
+ </g>
+ <rect
+ style="opacity:1;fill:#cbd4db;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3257"
+ width="46"
+ height="1"
+ x="2"
+ y="33" />
+ </g>
+</svg>
Added: trunk/bigboard/themes/fedora/stock-bottom-solid.svg
==============================================================================
--- (empty file)
+++ trunk/bigboard/themes/fedora/stock-bottom-solid.svg Sat Jun 28 00:15:52 2008
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="50"
+ height="17"
+ id="svg2715"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="stock-bottom-solid.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2717">
+ <linearGradient
+ id="linearGradient3249">
+ <stop
+ style="stop-color:#577e9a;stop-opacity:1;"
+ offset="0"
+ id="stop3251" />
+ <stop
+ style="stop-color:#416782;stop-opacity:1;"
+ offset="1"
+ id="stop3253" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3225">
+ <stop
+ style="stop-color:#3e6179;stop-opacity:1;"
+ offset="0"
+ id="stop3227" />
+ <stop
+ style="stop-color:#839bab;stop-opacity:1;"
+ offset="1"
+ id="stop3229" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3531">
+ <stop
+ style="stop-color:#bcbcbc;stop-opacity:0.78431374;"
+ offset="0"
+ id="stop3533" />
+ <stop
+ style="stop-color:#0000ff;stop-opacity:0.50196081;"
+ offset="1"
+ id="stop3535" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2723" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3537"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3162"
+ gradientUnits="userSpaceOnUse"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45" />
+ <inkscape:perspective
+ id="perspective3204"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3225"
+ id="linearGradient3247"
+ x1="25"
+ y1="20"
+ x2="25"
+ y2="39"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3249"
+ id="linearGradient3255"
+ x1="25"
+ y1="38"
+ x2="25"
+ y2="24"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="28.563667"
+ inkscape:cy="7.8841863"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ showborder="true"
+ inkscape:window-width="1400"
+ inkscape:window-height="1000"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ showguides="true"
+ inkscape:guide-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2725"
+ visible="true"
+ enabled="true"
+ spacingx="1px"
+ spacingy="1px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata2720">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-33)">
+ <path
+ style="fill:url(#linearGradient3255);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1,24 L 1,39 L 49,39 L 49,24 L 1,24 z"
+ transform="translate(0,10)"
+ id="path3529"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="opacity:1;fill:url(#linearGradient3247);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 1,23 L 1,32.5 C 1,36.092351 1,39 1,39 L 49,39 L 49,23 L 48,23 C 48,28 48,33 48,38 L 2,38 L 2,23 L 1,23 z"
+ transform="translate(0,10)"
+ id="rect3511"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ style="opacity:1;fill:#414d55;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 0,23 C 0,28.666667 0,34.333333 0,40 C 0,40 50,40 50,40 L 50,23 L 49,23 L 49,39 L 1,39 L 1,23 L 0,23 z"
+ transform="translate(0,10)"
+ id="rect3509"
+ sodipodi:nodetypes="ccccccccc" />
+ <rect
+ style="opacity:1;fill:#cbd4db;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3257"
+ width="46"
+ height="1"
+ x="2"
+ y="33" />
+ </g>
+</svg>
Added: trunk/bigboard/themes/fedora/stock-header-left-alpha.svg
==============================================================================
--- (empty file)
+++ trunk/bigboard/themes/fedora/stock-header-left-alpha.svg Sat Jun 28 00:15:52 2008
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="40"
+ height="20"
+ id="svg2715"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="header.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2717">
+ <linearGradient
+ id="linearGradient5058">
+ <stop
+ style="stop-color:#426781;stop-opacity:1;"
+ offset="0"
+ id="stop5060" />
+ <stop
+ style="stop-color:#425f74;stop-opacity:1;"
+ offset="1"
+ id="stop5062" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3531">
+ <stop
+ style="stop-color:#476d88;stop-opacity:1;"
+ offset="0"
+ id="stop3533" />
+ <stop
+ style="stop-color:#59809c;stop-opacity:1;"
+ offset="1"
+ id="stop3535" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2723" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3537"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3162"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3787"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3812"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient5064"
+ x1="40"
+ y1="2"
+ x2="40"
+ y2="19"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="26.481784"
+ inkscape:cy="1.8001996"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ showborder="true"
+ inkscape:window-width="1400"
+ inkscape:window-height="1000"
+ inkscape:window-x="0"
+ inkscape:window-y="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2725"
+ visible="true"
+ enabled="true"
+ spacingx="1px"
+ spacingy="1px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata2720">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:url(#linearGradient3812);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 5,1 L 1,5 L 1,20 L 40,20 L 40,1 L 5,1 z"
+ id="path3529"
+ sodipodi:nodetypes="cccccc" />
+ <g
+ id="g2388"
+ style="enable-background:new">
+ <path
+ style="opacity:1;fill:#414d55;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;comp-op:plus"
+ d="M 7.5,0 C 3.3536486,0 0,3.3536486 0,7.5 L 0,20 L 1,20 L 1,7.5 C 1,3.8903514 3.8903514,1 7.5,1 L 40,1 C 40,1 40,0 40,0 L 7.5,0 z"
+ id="rect3509"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ style="opacity:1;fill:#849bab;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;comp-op:plus"
+ d="M 7.5,1 C 3.9076486,1 1,3.9076486 1,7.5 L 1,20 L 2,20 L 2,7.5 C 2,4.4443514 4.4443514,2 7.5,2 L 40,2 C 40,2 40,1 40,1 L 7.5,1 z"
+ id="rect3511"
+ sodipodi:nodetypes="ccccccccc" />
+ </g>
+ <rect
+ style="opacity:1;fill:#264356;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3267"
+ width="38"
+ height="1"
+ x="2"
+ y="19" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient5064);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5056"
+ width="1"
+ height="17"
+ x="39"
+ y="2" />
+ </g>
+</svg>
Added: trunk/bigboard/themes/fedora/stock-header-left-solid.svg
==============================================================================
--- (empty file)
+++ trunk/bigboard/themes/fedora/stock-header-left-solid.svg Sat Jun 28 00:15:52 2008
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="40"
+ height="20"
+ id="svg2715"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="header-left-solid.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2717">
+ <linearGradient
+ id="linearGradient5058">
+ <stop
+ style="stop-color:#426781;stop-opacity:1;"
+ offset="0"
+ id="stop5060" />
+ <stop
+ style="stop-color:#425f74;stop-opacity:1;"
+ offset="1"
+ id="stop5062" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3531">
+ <stop
+ style="stop-color:#476d88;stop-opacity:1;"
+ offset="0"
+ id="stop3533" />
+ <stop
+ style="stop-color:#59809c;stop-opacity:1;"
+ offset="1"
+ id="stop3535" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2723" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3537"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3162"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3787"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3812"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient5064"
+ x1="40"
+ y1="2"
+ x2="40"
+ y2="19"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="26.481784"
+ inkscape:cy="1.8001996"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ showborder="true"
+ inkscape:window-width="1400"
+ inkscape:window-height="1000"
+ inkscape:window-x="0"
+ inkscape:window-y="25">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2725"
+ visible="true"
+ enabled="true"
+ spacingx="1px"
+ spacingy="1px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata2720">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:url(#linearGradient3812);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 2,2 L 2,20 L 40,20 L 40,2 L 2,2 z"
+ id="path3529"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="opacity:1;fill:#849bab;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 1,1 L 1,20 L 2,20 C 2,20 2,2 2,2 L 40,2 C 40,2 40,1 40,1 L 1,1 z"
+ id="rect3511"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="opacity:1;fill:#414d55;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 0,0 L 0,20 L 1,20 C 1,20 1,1 1,1 L 40,1 C 40,1 40,0 40,0 L 0,0 z"
+ id="rect3509"
+ sodipodi:nodetypes="ccccccc" />
+ <rect
+ style="opacity:1;fill:#264356;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3267"
+ width="38"
+ height="1"
+ x="2"
+ y="19" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient5064);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5056"
+ width="1"
+ height="17"
+ x="39"
+ y="2" />
+ </g>
+</svg>
Added: trunk/bigboard/themes/fedora/stock-header-right-alpha.svg
==============================================================================
--- (empty file)
+++ trunk/bigboard/themes/fedora/stock-header-right-alpha.svg Sat Jun 28 00:15:52 2008
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="40"
+ height="20"
+ id="svg2715"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="header-right.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2717">
+ <linearGradient
+ id="linearGradient5058">
+ <stop
+ style="stop-color:#b8c8d0;stop-opacity:1;"
+ offset="0"
+ id="stop5060" />
+ <stop
+ style="stop-color:#a3b6c4;stop-opacity:1;"
+ offset="1"
+ id="stop5062" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3531">
+ <stop
+ style="stop-color:#6a8aa0;stop-opacity:1;"
+ offset="0"
+ id="stop3533" />
+ <stop
+ style="stop-color:#8b96ba;stop-opacity:1;"
+ offset="1"
+ id="stop3535" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2723" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3537"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3162"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3787"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3812"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19"
+ gradientTransform="matrix(-1,0,0,1,40,0)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient5064"
+ x1="40"
+ y1="2"
+ x2="40"
+ y2="19"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-40,0)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient5090"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-39,0)"
+ x1="40"
+ y1="2"
+ x2="40"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient5093"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-39,0)"
+ x1="54"
+ y1="19"
+ x2="54"
+ y2="1" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="14.231784"
+ inkscape:cy="4.1751996"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ showborder="true"
+ inkscape:window-width="1400"
+ inkscape:window-height="1000"
+ inkscape:window-x="0"
+ inkscape:window-y="24">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2725"
+ visible="true"
+ enabled="true"
+ spacingx="1px"
+ spacingy="1px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata2720">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:url(#linearGradient3812);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 35,1 L 39,5 L 39,20 L 0,20 L 0,1 L 35,1 z"
+ id="path3529"
+ sodipodi:nodetypes="cccccc" />
+ <g
+ id="g2388"
+ style="enable-background:new"
+ transform="matrix(-1,0,0,1,40,0)">
+ <path
+ style="opacity:1;fill:url(#linearGradient5093);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;comp-op:plus"
+ d="M 0,1 C 0,1 0,2 0,2 L 0,19 L 1,19 L 1,2 L 32.5,2 C 35.555649,2 38,4.4443514 38,7.5 L 38,19 L 39,19 L 39,7.5 C 39,3.9076486 36.092351,1 32.5,1 L 0,1 z"
+ transform="matrix(-1,0,0,1,40,0)"
+ id="rect5056"
+ sodipodi:nodetypes="cccccccccccc" />
+ <path
+ style="opacity:1;fill:#414d55;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;comp-op:plus"
+ d="M 7.5,0 C 3.3536486,0 0,3.3536486 0,7.5 L 0,20 L 1,20 L 1,7.5 C 1,3.8903514 3.8903514,1 7.5,1 L 40,1 C 40,1 40,0 40,0 L 7.5,0 z"
+ id="rect3509"
+ sodipodi:nodetypes="ccccccccc" />
+ <rect
+ style="opacity:1;fill:#8b96ba;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;comp-op:plus"
+ id="rect5099"
+ width="1"
+ height="1"
+ x="38"
+ y="19"
+ transform="matrix(-1,0,0,1,40,0)" />
+ </g>
+ <rect
+ style="opacity:1;fill:#264356;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3267"
+ width="38"
+ height="1"
+ x="-38"
+ y="19"
+ transform="scale(-1,1)" />
+ </g>
+</svg>
Added: trunk/bigboard/themes/fedora/stock-header-right-prelight-alpha.svg
==============================================================================
--- (empty file)
+++ trunk/bigboard/themes/fedora/stock-header-right-prelight-alpha.svg Sat Jun 28 00:15:52 2008
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="40"
+ height="20"
+ id="svg2715"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="header-right-prelight.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2717">
+ <linearGradient
+ id="linearGradient5058">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5060" />
+ <stop
+ style="stop-color:#cbd9e4;stop-opacity:1;"
+ offset="1"
+ id="stop5062" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3531">
+ <stop
+ style="stop-color:#96afc0;stop-opacity:1;"
+ offset="0"
+ id="stop3533" />
+ <stop
+ style="stop-color:#c6c9d2;stop-opacity:1;"
+ offset="1"
+ id="stop3535" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2723" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3537"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3162"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3787"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3812"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19"
+ gradientTransform="matrix(-1,0,0,1,40,0)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient5064"
+ x1="40"
+ y1="2"
+ x2="40"
+ y2="19"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-40,0)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient5090"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-39,0)"
+ x1="40"
+ y1="2"
+ x2="40"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient5093"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-39,0)"
+ x1="54"
+ y1="19"
+ x2="54"
+ y2="1" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="1.794284"
+ inkscape:cy="4.1751996"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ showborder="true"
+ inkscape:window-width="1400"
+ inkscape:window-height="1000"
+ inkscape:window-x="0"
+ inkscape:window-y="24">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2725"
+ visible="true"
+ enabled="true"
+ spacingx="1px"
+ spacingy="1px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata2720">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:url(#linearGradient3812);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 35,1 L 39,5 L 39,20 L 0,20 L 0,1 L 35,1 z"
+ id="path3529"
+ sodipodi:nodetypes="cccccc" />
+ <g
+ id="g2388"
+ style="enable-background:new"
+ transform="matrix(-1,0,0,1,40,0)">
+ <path
+ style="opacity:1;fill:url(#linearGradient5093);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;comp-op:plus"
+ d="M 0,1 C 0,1 0,2 0,2 L 0,19 L 1,19 L 1,2 L 32.5,2 C 35.555649,2 38,4.4443514 38,7.5 L 38,19 L 39,19 L 39,7.5 C 39,3.9076486 36.092351,1 32.5,1 L 0,1 z"
+ transform="matrix(-1,0,0,1,40,0)"
+ id="rect5056"
+ sodipodi:nodetypes="cccccccccccc" />
+ <path
+ style="opacity:1;fill:#414d55;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;comp-op:plus"
+ d="M 7.5,0 C 3.3536486,0 0,3.3536486 0,7.5 L 0,20 L 1,20 L 1,7.5 C 1,3.8903514 3.8903514,1 7.5,1 L 40,1 C 40,1 40,0 40,0 L 7.5,0 z"
+ id="rect3509"
+ sodipodi:nodetypes="ccccccccc" />
+ <rect
+ style="opacity:1;fill:#849bab;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;comp-op:plus"
+ id="rect5097"
+ width="0"
+ height="0"
+ x="33"
+ y="2"
+ transform="matrix(-1,0,0,1,40,0)" />
+ <rect
+ style="opacity:1;fill:#8b96ba;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;comp-op:plus"
+ id="rect5099"
+ width="1"
+ height="1"
+ x="38"
+ y="19"
+ transform="matrix(-1,0,0,1,40,0)" />
+ </g>
+ <rect
+ style="opacity:1;fill:#264356;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3267"
+ width="38"
+ height="1"
+ x="-38"
+ y="19"
+ transform="scale(-1,1)" />
+ </g>
+</svg>
Added: trunk/bigboard/themes/fedora/stock-header-right-prelight-solid.svg
==============================================================================
--- (empty file)
+++ trunk/bigboard/themes/fedora/stock-header-right-prelight-solid.svg Sat Jun 28 00:15:52 2008
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="40"
+ height="20"
+ id="svg2715"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="stock-header-right-prelight-solid.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2717">
+ <linearGradient
+ id="linearGradient5058">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5060" />
+ <stop
+ style="stop-color:#cbd9e4;stop-opacity:1;"
+ offset="1"
+ id="stop5062" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3531">
+ <stop
+ style="stop-color:#96afc0;stop-opacity:1;"
+ offset="0"
+ id="stop3533" />
+ <stop
+ style="stop-color:#c6c9d2;stop-opacity:1;"
+ offset="1"
+ id="stop3535" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2723" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3537"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3162"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3787"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3812"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19"
+ gradientTransform="matrix(-1,0,0,1,40,0)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient5064"
+ x1="40"
+ y1="2"
+ x2="40"
+ y2="19"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-40,0)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient5090"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-39,0)"
+ x1="40"
+ y1="2"
+ x2="40"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient5093"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-39,0)"
+ x1="54"
+ y1="19"
+ x2="54"
+ y2="1" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient2404"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-39,0)"
+ x1="54"
+ y1="19"
+ x2="54"
+ y2="1" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="21.169284"
+ inkscape:cy="3.9876996"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ showborder="true"
+ inkscape:window-width="1400"
+ inkscape:window-height="1000"
+ inkscape:window-x="0"
+ inkscape:window-y="25">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2725"
+ visible="true"
+ enabled="true"
+ spacingx="1px"
+ spacingy="1px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata2720">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:url(#linearGradient3812);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 39,1 L 39,20 L 0,20 L 0,1 L 39,1 z"
+ id="path3529"
+ sodipodi:nodetypes="ccccc" />
+ <rect
+ style="opacity:1;fill:#8b96ba;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5099"
+ width="1"
+ height="1"
+ x="38"
+ y="19"
+ transform="matrix(-1,0,0,1,40,0)" />
+ <rect
+ style="opacity:1;fill:#849bab;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5097"
+ width="0"
+ height="0"
+ x="33"
+ y="2"
+ transform="matrix(-1,0,0,1,40,0)" />
+ <path
+ style="opacity:1;fill:#414d55;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 40,0 L 40,20 L 39,20 C 39,13.666667 39,7.3333333 39,1 L 0,1 C 0,1 0,0 0,0 L 40,0 z"
+ id="rect3509"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="opacity:1;fill:url(#linearGradient2404);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 0,1 C 0,1 0,2 0,2 L 0,19 L 1,19 L 1,2 L 38,2 L 38,19 L 39,19 C 39,13 39,7 39,1 L 0,1 z"
+ id="rect5056"
+ sodipodi:nodetypes="cccccccccc" />
+ <rect
+ style="opacity:1;fill:#264356;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3267"
+ width="38"
+ height="1"
+ x="-38"
+ y="19"
+ transform="scale(-1,1)" />
+ </g>
+</svg>
Added: trunk/bigboard/themes/fedora/stock-header-right-solid.svg
==============================================================================
--- (empty file)
+++ trunk/bigboard/themes/fedora/stock-header-right-solid.svg Sat Jun 28 00:15:52 2008
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="40"
+ height="20"
+ id="svg2715"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="header-right-solid.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2717">
+ <linearGradient
+ id="linearGradient5058">
+ <stop
+ style="stop-color:#b8c8d0;stop-opacity:1;"
+ offset="0"
+ id="stop5060" />
+ <stop
+ style="stop-color:#a3b6c4;stop-opacity:1;"
+ offset="1"
+ id="stop5062" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3531">
+ <stop
+ style="stop-color:#6a8aa0;stop-opacity:1;"
+ offset="0"
+ id="stop3533" />
+ <stop
+ style="stop-color:#8b96ba;stop-opacity:1;"
+ offset="1"
+ id="stop3535" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2723" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3537"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3162"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3787"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3812"
+ gradientUnits="userSpaceOnUse"
+ x1="25"
+ y1="2"
+ x2="25"
+ y2="19"
+ gradientTransform="matrix(-1,0,0,1,40,0)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient5064"
+ x1="40"
+ y1="2"
+ x2="40"
+ y2="19"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-40,0)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient5090"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-39,0)"
+ x1="40"
+ y1="2"
+ x2="40"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient5093"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-39,0)"
+ x1="54"
+ y1="19"
+ x2="54"
+ y2="1" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5058"
+ id="linearGradient2405"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-39,0)"
+ x1="54"
+ y1="19"
+ x2="54"
+ y2="1" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="14.231784"
+ inkscape:cy="4.1751996"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ showborder="true"
+ inkscape:window-width="1400"
+ inkscape:window-height="1000"
+ inkscape:window-x="0"
+ inkscape:window-y="25">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2725"
+ visible="true"
+ enabled="true"
+ spacingx="1px"
+ spacingy="1px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata2720">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:url(#linearGradient3812);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 35,1 L 39,1 L 39,20 L 0,20 L 0,1 L 35,1 z"
+ id="path3529"
+ sodipodi:nodetypes="cccccc" />
+ <rect
+ style="opacity:1;fill:#8b96ba;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5099"
+ width="1"
+ height="1"
+ x="38"
+ y="19"
+ transform="matrix(-1,0,0,1,40,0)" />
+ <path
+ style="opacity:1;fill:#414d55;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 40,0 L 40,20 L 39,20 C 39,13.666667 39,7.3333333 39,1 L 0,1 C 0,1 0,0 0,0 L 40,0 z"
+ id="rect3509"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="opacity:1;fill:url(#linearGradient2405);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 0,1 C 0,1 0,2 0,2 L 0,19 L 1,19 L 1,2 L 38,2 L 38,19 L 39,19 C 39,19 39,1 39,1 L 0,1 z"
+ id="rect5056"
+ sodipodi:nodetypes="cccccccccc" />
+ <rect
+ style="opacity:1;fill:#264356;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3267"
+ width="38"
+ height="1"
+ x="-38"
+ y="19"
+ transform="scale(-1,1)" />
+ </g>
+</svg>
Added: trunk/bigboard/themes/fedora/stock-hidden-alpha.svg
==============================================================================
--- (empty file)
+++ trunk/bigboard/themes/fedora/stock-hidden-alpha.svg Sat Jun 28 00:15:52 2008
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="17"
+ height="50"
+ id="svg2715"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="stock-collapsed.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2717">
+ <linearGradient
+ id="linearGradient3249">
+ <stop
+ style="stop-color:#577e9a;stop-opacity:1;"
+ offset="0"
+ id="stop3251" />
+ <stop
+ style="stop-color:#416782;stop-opacity:1;"
+ offset="1"
+ id="stop3253" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3225">
+ <stop
+ style="stop-color:#3e6179;stop-opacity:1;"
+ offset="0"
+ id="stop3227" />
+ <stop
+ style="stop-color:#839bab;stop-opacity:1;"
+ offset="1"
+ id="stop3229" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3531">
+ <stop
+ style="stop-color:#bcbcbc;stop-opacity:0.78431374;"
+ offset="0"
+ id="stop3533" />
+ <stop
+ style="stop-color:#0000ff;stop-opacity:0.50196081;"
+ offset="1"
+ id="stop3535" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2723" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3537"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3162"
+ gradientUnits="userSpaceOnUse"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45" />
+ <inkscape:perspective
+ id="perspective3204"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3249"
+ id="linearGradient3255"
+ x1="25"
+ y1="38"
+ x2="25"
+ y2="23"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,-1,1,0,-8,67)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="15.999999"
+ inkscape:cx="8.4793382"
+ inkscape:cy="29.353672"
+ inkscape:document-units="px"
+ inkscape:current-layer="g2388"
+ showgrid="true"
+ showborder="true"
+ inkscape:window-width="1400"
+ inkscape:window-height="1000"
+ inkscape:window-x="0"
+ inkscape:window-y="24"
+ showguides="true"
+ inkscape:guide-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2725"
+ visible="true"
+ enabled="true"
+ spacingx="1px"
+ spacingy="1px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata2720">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-15,-17)">
+ <path
+ style="fill:url(#linearGradient3255);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 15,66 L 27,66 L 31,62 L 31,22 L 27,18 L 15,18 L 15,66 z"
+ id="path3529"
+ sodipodi:nodetypes="ccccccc" />
+ <g
+ id="g2388"
+ style="enable-background:new"
+ transform="matrix(0,-1,1,0,-18,67)">
+ <path
+ style="opacity:1;fill:#414d55;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;comp-op:plus"
+ d="M 0,23 L 0,32.5 C 0,36.646351 3.3536486,40 7.5,40 L 42.5,40 C 46.646351,40 50,36.646351 50,32.5 L 50,23 L 49,23 L 49,32.5 C 49,36.109649 46.109649,39 42.5,39 L 7.5,39 C 3.8903514,39 1,36.109649 1,32.5 L 1,23 L 0,23 z"
+ transform="translate(0,10)"
+ id="rect3509"
+ sodipodi:nodetypes="ccccccccccccc" />
+ <path
+ style="opacity:1;fill:#8099a9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;comp-op:plus"
+ d="M 1,23 L 1,32.5 C 1,36.092351 3.9076486,39 7.5,39 L 42.5,39 C 46.092351,39 49,36.092351 49,32.5 L 49,23 L 48,23 L 48,32.5 C 48,35.555649 45.555649,38 42.5,38 L 7.5,38 C 4.4443514,38 2,35.555649 2,32.5 L 2,23 L 1,23 z"
+ transform="translate(0,10)"
+ id="rect3511"
+ sodipodi:nodetypes="ccccccccccccc" />
+ </g>
+ </g>
+</svg>
Added: trunk/bigboard/themes/fedora/stock-hidden-solid.svg
==============================================================================
--- (empty file)
+++ trunk/bigboard/themes/fedora/stock-hidden-solid.svg Sat Jun 28 00:15:52 2008
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="17"
+ height="50"
+ id="svg2715"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="stock-hidden-solid.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2717">
+ <linearGradient
+ id="linearGradient3249">
+ <stop
+ style="stop-color:#577e9a;stop-opacity:1;"
+ offset="0"
+ id="stop3251" />
+ <stop
+ style="stop-color:#416782;stop-opacity:1;"
+ offset="1"
+ id="stop3253" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3225">
+ <stop
+ style="stop-color:#3e6179;stop-opacity:1;"
+ offset="0"
+ id="stop3227" />
+ <stop
+ style="stop-color:#839bab;stop-opacity:1;"
+ offset="1"
+ id="stop3229" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3531">
+ <stop
+ style="stop-color:#bcbcbc;stop-opacity:0.78431374;"
+ offset="0"
+ id="stop3533" />
+ <stop
+ style="stop-color:#0000ff;stop-opacity:0.50196081;"
+ offset="1"
+ id="stop3535" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2723" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3537"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3162"
+ gradientUnits="userSpaceOnUse"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45" />
+ <inkscape:perspective
+ id="perspective3204"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3249"
+ id="linearGradient3255"
+ x1="25"
+ y1="38"
+ x2="25"
+ y2="23"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,-1,1,0,-8,67)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="15.999999"
+ inkscape:cx="10.604338"
+ inkscape:cy="19.916171"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ showborder="true"
+ inkscape:window-width="1400"
+ inkscape:window-height="1000"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ showguides="true"
+ inkscape:guide-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2725"
+ visible="true"
+ enabled="true"
+ spacingx="1px"
+ spacingy="1px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata2720">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-15,-17)">
+ <path
+ style="fill:url(#linearGradient3255);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 15,66 L 30,66 L 30,18 L 15,18 L 15,66 z"
+ id="path3529"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="opacity:1;fill:#8099a9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 15,66 L 31,66 L 31,18 L 15,18 L 15,19 C 20,19 25,19 30,19 C 30,34.333333 30,49.666667 30,65 L 15,65 L 15,66 z"
+ id="rect3511"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ style="opacity:1;fill:#414d55;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 15,67 L 32,67 C 32,50.333333 32,33.666667 32,17 L 15,17 L 15,18 L 31,18 C 31,34 31,50 31,66 L 15,66 L 15,67 z"
+ id="rect3509"
+ sodipodi:nodetypes="ccccccccc" />
+ </g>
+</svg>
Added: trunk/bigboard/themes/fedora/stock-main.svg
==============================================================================
--- (empty file)
+++ trunk/bigboard/themes/fedora/stock-main.svg Sat Jun 28 00:15:52 2008
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="50"
+ height="20"
+ id="svg2715"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="main.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2717">
+ <linearGradient
+ id="linearGradient3929">
+ <stop
+ style="stop-color:#849bab;stop-opacity:1;"
+ offset="0"
+ id="stop3931" />
+ <stop
+ style="stop-color:#3e6179;stop-opacity:1;"
+ offset="1"
+ id="stop3933" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3531">
+ <stop
+ style="stop-color:#bcbcbc;stop-opacity:0.78431374;"
+ offset="0"
+ id="stop3533" />
+ <stop
+ style="stop-color:#0000ff;stop-opacity:0.50196081;"
+ offset="1"
+ id="stop3535" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2723" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3537"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3531"
+ id="linearGradient3162"
+ gradientUnits="userSpaceOnUse"
+ x1="5"
+ y1="5"
+ x2="45"
+ y2="45" />
+ <inkscape:perspective
+ id="perspective3403"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3929"
+ id="linearGradient3935"
+ x1="25"
+ y1="0"
+ x2="25"
+ y2="20"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4"
+ inkscape:cx="86.910825"
+ inkscape:cy="24.49684"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ showborder="true"
+ inkscape:window-width="1400"
+ inkscape:window-height="1000"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showguides="true"
+ inkscape:guide-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2725"
+ visible="true"
+ enabled="true"
+ spacingx="1px"
+ spacingy="1px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata2720">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-10)">
+ <path
+ style="fill:#345b75;fill-opacity:0.78431374;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1,0 L 1,20 L 49,20 L 49,0 L 1,0 z"
+ transform="translate(0,10)"
+ id="path3529" />
+ <path
+ style="opacity:1;fill:url(#linearGradient3935);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 1,0 L 1,20 L 2,20 L 2,0 L 1,0 z M 48,0 L 48,20 L 49,20 L 49,0 L 48,0 z"
+ transform="translate(0,10)"
+ id="rect3511" />
+ <path
+ style="opacity:1;fill:#414d55;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 0,0 L 0,20 L 1,20 L 1,0 L 0,0 z M 49,0 L 49,20 L 50,20 L 50,0 L 49,0 z"
+ transform="translate(0,10)"
+ id="rect3509" />
+ </g>
+</svg>
Added: trunk/bigboard/themes/fedora/theme-alpha.css
==============================================================================
--- (empty file)
+++ trunk/bigboard/themes/fedora/theme-alpha.css Sat Jun 28 00:15:52 2008
@@ -0,0 +1,35 @@
+ import url("theme-common.css");
+
+canvas {
+ background-color: transparent;
+}
+
+.stock-header-left {
+ -hippo-background-image: url("stock-header-left-alpha.svg") 8px 1px 1px 8px;
+ padding: 4px 8px 4px;
+}
+
+.stock-header-right {
+ -hippo-background-image: url("stock-header-right-alpha.svg") 8px 8px 1px 1px;
+ padding: 4px 8px 4px;
+}
+
+.stock-header-right-prelight {
+ -hippo-background-image: url("stock-header-right-prelight-alpha.svg") 8px 8px 1px 1px;
+ padding: 4px 8px 4px;
+}
+
+.stock-main {
+ -hippo-background-image: url("stock-main.svg") 0px 8px 0px;
+ padding: 4px 8px 4px;
+}
+
+.stock-bottom {
+ -hippo-background-image: url("stock-bottom-alpha.svg") 1px 8px 8px;
+ padding: 6px 10px 5px;
+}
+
+.stock-hidden {
+ -hippo-background-image: url("stock-hidden-alpha.svg") 8px 8px 8px 0px;
+ padding: 8px 4px 8px;
+}
Added: trunk/bigboard/themes/fedora/theme-common.css
==============================================================================
--- (empty file)
+++ trunk/bigboard/themes/fedora/theme-common.css Sat Jun 28 00:15:52 2008
@@ -0,0 +1,37 @@
+* {
+ color: #dddddd;
+}
+
+:link, :visited {
+ color: #ffffcc;
+}
+
+.subforeground {
+ color: #95a9b6;
+}
+
+.stock-header-left * {
+ color: white;
+ font-size: 11pt;
+ font-weight: bold;
+}
+
+.stock-grippy {
+ -hippo-background-image: url("grippy.png");
+}
+
+.stock-hidden * {
+ color: white;
+ font-size: 11pt;
+ font-weight: bold;
+}
+
+.prelighted-box {
+ background-color: #59809c;
+}
+
+.slideout-root {
+ background-color: #345B75;
+ border-color: #a2afb5;
+ border-width: 1px;
+}
Added: trunk/bigboard/themes/fedora/theme-solid.css
==============================================================================
--- (empty file)
+++ trunk/bigboard/themes/fedora/theme-solid.css Sat Jun 28 00:15:52 2008
@@ -0,0 +1,35 @@
+ import url("theme-common.css");
+
+canvas {
+ background-color: #345B75;
+}
+
+.stock-header-left {
+ -hippo-background-image: url("stock-header-left-solid.svg") 8px 1px 1px 8px;
+ padding: 4px 8px 4px;
+}
+
+.stock-header-right {
+ -hippo-background-image: url("stock-header-right-solid.svg") 8px 8px 1px 1px;
+ padding: 4px 8px 4px;
+}
+
+.stock-header-right-prelight {
+ -hippo-background-image: url("stock-header-right-prelight-solid.svg") 8px 8px 1px 1px;
+ padding: 4px 8px 4px;
+}
+
+.stock-main {
+ -hippo-background-image: url("stock-main.svg") 0px 8px 0px;
+ padding: 4px 8px 4px;
+}
+
+.stock-bottom {
+ -hippo-background-image: url("stock-bottom-solid.svg") 1px 8px 8px;
+ padding: 6px 10px 5px;
+}
+
+.stock-hidden {
+ -hippo-background-image: url("stock-hidden-solid.svg") 8px 8px 8px 0px;
+ padding: 8px 4px 8px;
+}
Modified: trunk/main.py
==============================================================================
--- trunk/main.py (original)
+++ trunk/main.py Sat Jun 28 00:15:52 2008
@@ -14,7 +14,6 @@
import hippo
-from bigboard.core.exchange import Exchange
from bigboard.core.panel import Panel
import bigboard
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]