Add Midori and news-feed icons, improve waf scripts

Add small, optimized application icons and an all new
news-feed icon including optimized versions. The build
scripts are updated, and the data folder renamed to icons.
Plus the wscript_build is improved. Of course, Midori
now tests the icon theme for news-feed and uses it.
This commit is contained in:
Christian Dywan 2008-07-27 07:39:39 +02:00
parent 892a166eea
commit 2cb278cdb3
15 changed files with 356 additions and 52 deletions

View file

@ -1,6 +1,6 @@
AUTOMAKE_OPTIONS = gnu
SUBDIRS = katze midori po data
SUBDIRS = katze midori po icons
desktopdir = $(datadir)/applications
desktop_in_files = midori.desktop

View file

@ -52,7 +52,7 @@ AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
# Checks for gtksourceview
PKG_CHECK_MODULES(GTKSOURCEVIEW, gtksourceview, have_gtksourceview=true, have_gtksourceview=false)
PKG_CHECK_MODULES(GTKSOURCEVIEW, gtksourceview-2.0, have_gtksourceview=true, have_gtksourceview=false)
AC_SUBST(GTKSOURCEVIEW_CFLAGS)
AC_SUBST(GTKSOURCEVIEW_LIBS)
@ -92,6 +92,6 @@ AC_CONFIG_FILES([
katze/Makefile \
midori/Makefile \
po/Makefile.in \
data/Makefile
icons/Makefile
])
AC_OUTPUT

View file

@ -1,38 +0,0 @@
#! /usr/bin/env python
# WAF build script for midori
import os
import pproc as subprocess
srcdir = os.getcwd ()
blddir = bld.m_bdir
install_files ('DATADIR', 'icons/hicolor/scalable/apps', 'midori.svg')
if bld.env ()['CONVERT']:
def mkdir (path):
if not os.access (path, os.F_OK):
os.mkdir (path)
mkdir (blddir + '/icons')
for size in [16, 24, 32, 48]:
format = str (size) + 'x' + str (size)
if size < 32:
small = str ((size / 3)) + 'x' + str ((size / 3.5))
else:
small = '0x0'
mkdir (blddir + '/icons/' + format)
convert = subprocess.Popen (['convert', '-adaptive-sharpen', small,
'-background', 'transparent',
'-geometry', format, '-extent', format,
srcdir + '/data/midori.svg',
blddir + '/icons/' + format + '/midori.png'],
stderr=subprocess.PIPE)
if not convert.wait ():
install_files ('DATADIR', 'icons/hicolor/' + format + '/apps',
blddir + '/icons/' + format + '/midori.png')
else:
Params.pprint ('BLUE', "Optimized icons could not be created.")
break

BIN
icons/16x16/midori.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 937 B

BIN
icons/16x16/news-feed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 832 B

BIN
icons/22x22/midori.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
icons/22x22/news-feed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -1,5 +1,5 @@
iconsdir = $(datadir)/icons/hicolor/scalable/apps
icons_DATA = midori.svg
icons_DATA = scalable/midori.svg
EXTRA_DIST = $(icons_DATA)

View file

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -0,0 +1,280 @@
<?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"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
width="48"
height="48"
xml:space="preserve"
sodipodi:docname="tango-rss.svg"
version="1.0"
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
id="metadata7"><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><defs
id="defs5"><linearGradient
id="linearGradient3300"><stop
style="stop-color:#ce5c00;stop-opacity:1;"
offset="0"
id="stop3302" /><stop
style="stop-color:#893d00;stop-opacity:1;"
offset="1"
id="stop3304" /></linearGradient><linearGradient
id="linearGradient3275"><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3277" /><stop
style="stop-color:#f57900;stop-opacity:0;"
offset="1"
id="stop3279" /></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="perspective9" /><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath17"><path
d="M 0,128 L 128,128 L 128,0 L 0,0 L 0,128 z"
id="path19" /></clipPath><linearGradient
x1="0"
y1="0"
x2="1"
y2="0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-104.01236,104.01237,104.01237,104.01237,116.00586,11.994141)"
spreadMethod="pad"
id="linearGradient37"><stop
style="stop-opacity:1;stop-color:#d95b29"
offset="0"
id="stop39" /><stop
style="stop-opacity:1;stop-color:#fb9e3a"
offset="0.5"
id="stop41" /><stop
style="stop-opacity:1;stop-color:#e3702d"
offset="1"
id="stop43" /></linearGradient><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3275"
id="linearGradient3281"
x1="28.140682"
y1="59.007069"
x2="123.56256"
y2="64.008011"
gradientUnits="userSpaceOnUse" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3275"
id="linearGradient3283"
gradientUnits="userSpaceOnUse"
x1="-22.962652"
y1="-26.856916"
x2="113.12444"
y2="103.36325" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3275"
id="linearGradient3285"
gradientUnits="userSpaceOnUse"
x1="4.4374332"
y1="64.008011"
x2="123.56256"
y2="64.008011" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3275"
id="linearGradient3287"
gradientUnits="userSpaceOnUse"
x1="4.4374332"
y1="64.008011"
x2="123.56256"
y2="64.008011" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3300"
id="linearGradient3306"
x1="-0.98719376"
y1="119.27105"
x2="39.936729"
y2="88.299164"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9961613,0,0,1.0000405,6.8742977e-4,-4.4021459e-3)" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3300"
id="linearGradient3351"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9961613,0,0,1.0000405,6.8742977e-4,-4.4021459e-3)"
x1="-0.98719376"
y1="119.27105"
x2="39.936729"
y2="88.299164" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3275"
id="linearGradient3353"
gradientUnits="userSpaceOnUse"
x1="-22.962652"
y1="-26.856916"
x2="113.12444"
y2="103.36325" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3275"
id="linearGradient3355"
gradientUnits="userSpaceOnUse"
x1="4.4374332"
y1="64.008011"
x2="123.56256"
y2="64.008011" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3275"
id="linearGradient3357"
gradientUnits="userSpaceOnUse"
x1="4.4374332"
y1="64.008011"
x2="123.56256"
y2="64.008011" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3275"
id="linearGradient3359"
gradientUnits="userSpaceOnUse"
x1="28.140682"
y1="59.007069"
x2="123.56256"
y2="64.008011" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3300"
id="linearGradient3209"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9961613,0,0,1.0000405,6.8742977e-4,-4.4021459e-3)"
x1="-0.98719376"
y1="119.27105"
x2="39.936729"
y2="88.299164" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3275"
id="linearGradient3211"
gradientUnits="userSpaceOnUse"
x1="-22.962652"
y1="-26.856916"
x2="113.12444"
y2="103.36325" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3275"
id="linearGradient3213"
gradientUnits="userSpaceOnUse"
x1="4.4374332"
y1="64.008011"
x2="123.56256"
y2="64.008011" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3275"
id="linearGradient3215"
gradientUnits="userSpaceOnUse"
x1="4.4374332"
y1="64.008011"
x2="123.56256"
y2="64.008011" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3275"
id="linearGradient3217"
gradientUnits="userSpaceOnUse"
x1="28.140682"
y1="59.007069"
x2="123.56256"
y2="64.008011" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3300"
id="linearGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9961613,0,0,1.0000405,6.4944458e-2,-4.4021459e-3)"
x1="-0.98719376"
y1="119.27105"
x2="39.936729"
y2="88.299164" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3275"
id="linearGradient3234"
gradientUnits="userSpaceOnUse"
x1="-17.119463"
y1="-35.774288"
x2="113.12444"
y2="103.36325" /></defs><sodipodi:namedview
inkscape:window-height="720"
inkscape:window-width="888"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="true"
inkscape:snap-global="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="8.8034794"
inkscape:cx="3.3324561"
inkscape:cy="40.010499"
inkscape:window-x="542"
inkscape:window-y="39"
inkscape:current-layer="g11"><inkscape:grid
type="xygrid"
id="grid2432"
visible="true"
enabled="true" /></sodipodi:namedview><g
id="g11"
inkscape:groupmode="layer"
inkscape:label="feed-icon-legacy"
transform="matrix(1.25,0,0,-1.25,0,160)"><path
style="fill:#fcaf3e;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3232);stroke-width:0.80048220999999986"
d="M 38.002169,119.5841 C 38.136627,124.13453 33.833799,128.04502 29.34011,127.60391 C 22.114004,127.57701 14.884487,127.65816 7.6605468,127.56249 C 3.374464,127.23569 0.043196567,123.0315 0.4796428,118.78629 C 0.50646108,111.58944 0.42554092,104.38919 0.52093827,97.194505 C 0.84590169,92.898821 5.0383763,89.557076 9.2743628,89.994993 C 16.456202,90.021864 23.641448,89.940771 30.821119,90.036395 C 35.107237,90.362998 38.438787,94.566998 38.002169,98.8123 C 38.002169,105.73624 38.002169,112.66018 38.002169,119.5841 z"
id="path21" /><g
id="g27"
transform="matrix(0.2954876,0,0,-0.2955267,0.3513908,127.60862)"
style="fill:#f57900;fill-opacity:1"><g
id="g33"
style="fill:#f57900;fill-opacity:1"><g
id="g35"
style="fill:#f57900;fill-opacity:1"><path
id="path45"
d="M 123.429,29.915001 C 123.85961,15.464801 110.11454,3.1099424 95.831258,4.571 C 72.994905,4.6555834 50.147792,4.4001008 27.318303,4.7018714 C 13.655392,5.7359945 3.1212452,19.154954 4.571,32.63029 C 4.6555615,55.310488 4.4001543,78.001434 4.701815,100.67478 C 5.732848,114.33766 19.14685,124.88003 32.62429,123.429 C 55.309345,123.34447 78.005156,123.59982 100.68335,123.29816 C 114.34614,122.26269 124.87863,108.84276 123.429,95.36771 C 123.429,73.55014 123.429,51.732571 123.429,29.915001 z"
style="fill:#f57900;fill-opacity:1;stroke:none" /></g></g></g><g
id="g3267"
transform="matrix(0.2954876,0,0,-0.2955267,0.3016452,127.60042)"
style="fill:url(#linearGradient3217);fill-opacity:1"><g
id="g3269"
style="fill:url(#linearGradient3215);fill-opacity:1"><g
id="g3271"
style="fill:url(#linearGradient3213);fill-opacity:1"><path
id="path3273"
d="M 120.35364,17.922673 C 115.55613,8.6998977 107.96179,4.6474204 95.831258,4.571 C 72.994905,4.6555834 50.147792,4.4001008 27.318303,4.7018714 C 13.655392,5.7359945 3.1212452,19.154954 4.571,32.63029 C 4.6555615,55.310488 4.4001543,80.768894 4.701815,103.44224 C 6.1143957,104.77002 9.3538134,119.64674 16.281216,115.55817 C 32.747299,105.83986 62.937668,76.829161 61.921742,67.38561 C 61.921742,45.56804 120.35364,39.740243 120.35364,17.922673 z"
style="fill:url(#linearGradient3234);fill-opacity:1;stroke:none"
sodipodi:nodetypes="cccccscc" /></g></g></g><g
id="g3295"
transform="translate(-0.7068273,-0.4497993)"
style="fill:#eeeeec;stroke:#eeeeec"><path
transform="matrix(0.8,0,0,-0.8,0,128)"
sodipodi:nodetypes="ccccc"
id="path3293"
d="M 8.7550201,7.1164658 C 27.144226,9.188466 39.179126,18.429426 40.883534,39.325301 L 35.180723,39.325301 C 33.384365,22.620491 23.902594,14.889021 8.8353414,13.381526 L 8.7550201,7.1164658 z"
style="fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /><path
sodipodi:nodetypes="ccccc"
transform="matrix(0.8,0,0,-0.8,0,128)"
id="path3291"
d="M 9.0763052,24.2249 C 18.841763,24.662007 23.0271,30.700076 23.935743,39.405622 L 29.879518,39.485944 C 28.300152,25.30521 20.281142,19.207838 9.0763052,18.120482 L 9.0763052,24.2249 z"
style="fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /><path
transform="matrix(0.8,0,0,-0.8,0.8178584,128)"
d="M 16.290628,35.107368 A 4.3635263,4.3537817 0 1 1 7.5635757,35.107368 A 4.3635263,4.3537817 0 1 1 16.290628,35.107368 z"
sodipodi:ry="4.3537817"
sodipodi:rx="4.3635263"
sodipodi:cy="35.107368"
sodipodi:cx="11.927102"
id="path2493"
style="opacity:1;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:type="arc" /></g></g></svg>

After

Width:  |  Height:  |  Size: 12 KiB

47
icons/wscript_build Normal file
View file

@ -0,0 +1,47 @@
#! /usr/bin/env python
# WAF build script for midori
def add_image (bld, install_files, category, name):
import os
import pproc as subprocess
srcdir = os.getcwd ()
blddir = bld.m_bdir
def mkdir (path):
if not os.access (path, os.F_OK):
os.mkdir (path)
def _install_files (folder, destination, source):
try:
install_files (folder, destination, source)
except:
pass
if bld.env ()['CONVERT']:
mkdir (blddir + '/icons')
for size in [16, 22, 32, 48]:
format = str (size) + 'x' + str (size)
if os.access (srcdir + '/icons/' + format + '/' + name + '.png', os.F_OK):
_install_files ('DATADIR', 'icons/hicolor/' + format + '/' + category,
srcdir + '/icons/' + format + '/' + name + '.png')
elif not bld.env ()['CONVERT']:
pass
elif os.access (srcdir + '/icons/scalable/' + name + '.svg', os.F_OK):
mkdir (blddir + '/icons/' + format)
convert = subprocess.Popen (['convert',
'-background', 'transparent',
'-geometry', format, '-extent', format,
srcdir + '/icons/scalable/' + name + '.svg',
blddir + '/icons/' + format + '/' + name + '.png'],
stderr=subprocess.PIPE)
if not convert.wait ():
_install_files ('DATADIR', 'icons/hicolor/' + format + '/' + category,
blddir + '/icons/' + format + '/' + name + '.png')
else:
Params.pprint ('BLUE', "Optimized icons could not be created.")
break
add_image (bld, install_files, 'apps', 'midori')
add_image (bld, install_files, 'status', 'news-feed')

View file

@ -35,6 +35,7 @@ stock_items_init (void)
{
static GtkStockItem items[] =
{
{ STOCK_NEWS_FEED },
{ STOCK_LOCK_OPEN },
{ STOCK_LOCK_SECURE },
{ STOCK_LOCK_BROKEN },

View file

@ -31,7 +31,7 @@ KatzeXbelItem* bookmarks;
#define STOCK_BOOKMARK GTK_STOCK_FILE /* "stock_bookmark" "bookmark-web" */
#define STOCK_FORM_FILL GTK_STOCK_JUSTIFY_FILL /* "insert-text" "form-fill" */
#define STOCK_NEWSFEED GTK_STOCK_INDEX
#define STOCK_NEWS_FEED "news-feed"
/* We assume that these legacy icon names are usually present */

View file

@ -71,6 +71,8 @@ struct _MidoriBrowser
GtkWidget* statusbar;
GtkWidget* progressbar;
const gchar* stock_news_feed;
gchar* statusbar_text;
MidoriWebSettings* settings;
GList* tab_titles;
@ -475,7 +477,7 @@ midori_web_view_news_feed_ready_cb (MidoriWebView* web_view,
{
gtk_icon_entry_set_icon_from_stock (GTK_ICON_ENTRY (
gtk_bin_get_child (GTK_BIN (browser->location))),
GTK_ICON_ENTRY_SECONDARY, GTK_STOCK_INDEX);
GTK_ICON_ENTRY_SECONDARY, browser->stock_news_feed);
}
static gboolean
@ -3035,16 +3037,24 @@ static const gchar* ui_markup =
"</ui>";
static void
midori_browser_realize_cb (GtkStyle* style, MidoriBrowser* browser)
midori_browser_realize_cb (GtkStyle* style,
MidoriBrowser* browser)
{
GdkScreen* screen = gtk_widget_get_screen (GTK_WIDGET (browser));
GdkScreen* screen;
GtkIconTheme* icon_theme;
screen = gtk_widget_get_screen (GTK_WIDGET (browser));
if (screen)
{
GtkIconTheme* icon_theme = gtk_icon_theme_get_for_screen (screen);
icon_theme = gtk_icon_theme_get_for_screen (screen);
if (gtk_icon_theme_has_icon (icon_theme, "midori"))
gtk_window_set_icon_name (GTK_WINDOW (browser), "midori");
else
gtk_window_set_icon_name (GTK_WINDOW (browser), "web-browser");
if (gtk_icon_theme_has_icon (icon_theme, STOCK_NEWS_FEED))
browser->stock_news_feed = STOCK_NEWS_FEED;
else
browser->stock_news_feed = GTK_STOCK_INDEX;
}
}
@ -3120,6 +3130,8 @@ midori_browser_init (MidoriBrowser* browser)
{
GtkRcStyle* rcstyle;
browser->stock_news_feed = GTK_STOCK_INDEX;
/* Setup the window metrics */
g_signal_connect (browser, "realize",
G_CALLBACK (midori_browser_realize_cb), browser);
@ -3233,7 +3245,7 @@ midori_browser_init (MidoriBrowser* browser)
/* FIXME: Due to a bug in GtkIconEntry we need to set an initial icon */
gtk_icon_entry_set_icon_from_stock (GTK_ICON_ENTRY (
gtk_bin_get_child (GTK_BIN (browser->location))),
GTK_ICON_ENTRY_SECONDARY, GTK_STOCK_INDEX);
GTK_ICON_ENTRY_SECONDARY, browser->stock_news_feed);
gtk_icon_entry_set_icon_highlight (GTK_ICON_ENTRY (
gtk_bin_get_child (GTK_BIN (browser->location))),
GTK_ICON_ENTRY_SECONDARY, TRUE);

10
wscript
View file

@ -65,7 +65,7 @@ def set_options (opt):
help='Disables native language support', dest='disable_nls')
def build (bld):
bld.add_subdirs ('katze midori data')
bld.add_subdirs ('katze midori icons')
if bld.env ()['INTLTOOL']:
bld.add_subdirs ('po')
@ -89,9 +89,11 @@ def shutdown ():
if not Params.g_options.destdir:
# update the pixmap cache directory
try:
subprocess.call (['gtk-update-icon-cache', '-q', '-f', '-t', dir])
Params.pprint ('YELLOW', "Updated Gtk icon cache.")
icon_cache_updated = True
uic = subprocess.Popen (['gtk-update-icon-cache', '-q', '-f', '-t', dir],
stderr=subprocess.PIPE)
if not uic.wait ():
Params.pprint ('YELLOW', "Updated Gtk icon cache.")
icon_cache_updated = True
except:
Params.pprint ('RED', "Failed to update icon cache.")
if not icon_cache_updated: