Add (+) and (-) icon artwork, and a little bit of infrastructure for them

svn path=/trunk/; revision=136
This commit is contained in:
Dan Winship 2008-12-22 22:05:56 +00:00
parent 40a3fdc02e
commit 54d8f3b27d
8 changed files with 185 additions and 6 deletions

View File

@ -1,3 +1,3 @@
SUBDIRS = src SUBDIRS = src data

View File

@ -53,5 +53,6 @@ AC_SUBST(metacity)
AC_OUTPUT([ AC_OUTPUT([
Makefile Makefile
data/Makefile
src/Makefile src/Makefile
]) ])

4
data/Makefile.am Normal file
View File

@ -0,0 +1,4 @@
imagedir = $(pkgdatadir)/images
image_DATA = \
add-workspace.svg

70
data/add-workspace.svg Normal file
View File

@ -0,0 +1,70 @@
<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="59.995201"
height="59.995102"
id="svg3113"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="add-workspace.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs3115">
<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="perspective3121" />
</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="0.35"
inkscape:cx="375"
inkscape:cy="520"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="641"
inkscape:window-height="683"
inkscape:window-x="4"
inkscape:window-y="54" />
<metadata
id="metadata3118">
<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(-498.57383,-439.50749)">
<path
id="path3269"
d="M 528.57143,439.91129 C 512.23433,439.91129 498.97763,453.16795 498.97763,469.50504 C 498.97763,485.84214 512.23433,499.09881 528.57143,499.09879 C 544.90853,499.09879 558.16513,485.84215 558.16523,469.50504 C 558.16523,453.16794 544.90853,439.9113 528.57143,439.91129 z M 525.29023,451.16129 L 531.88393,451.16129 C 533.75363,451.16129 535.25893,452.66659 535.25893,454.53629 L 535.25893,462.84879 L 543.54023,462.84879 C 545.40973,462.84879 546.91523,464.35409 546.91523,466.22379 L 546.91523,472.81754 C 546.91523,474.68728 545.40993,476.19255 543.54023,476.19254 L 535.25893,476.19254 L 535.25893,484.47379 C 535.25893,486.34353 533.75363,487.8488 531.88393,487.84879 L 525.29023,487.84879 C 523.42053,487.84881 521.91523,486.34351 521.91523,484.47379 L 521.91523,476.19254 L 513.60263,476.19254 C 511.73313,476.19257 510.22773,474.68726 510.22763,472.81754 L 510.22763,466.22379 C 510.22763,464.35407 511.73303,462.8488 513.60263,462.84879 L 521.91523,462.84879 L 521.91523,454.53629 C 521.91523,452.66657 523.42043,451.1613 525.29023,451.16129 z"
style="opacity:0.30701785;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.807603px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

71
data/remove-workspace.svg Normal file
View File

@ -0,0 +1,71 @@
<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="59.995201"
height="59.995102"
id="svg3113"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="remove-workspace.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs3115">
<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="perspective3121" />
</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.5"
inkscape:cx="-8.1974244"
inkscape:cy="38.948933"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1400"
inkscape:window-height="971"
inkscape:window-x="454"
inkscape:window-y="105" />
<metadata
id="metadata3118">
<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(-498.57383,-439.50749)">
<path
style="opacity:0.30701785;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.807603px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
d="M 30 0.40625 C 13.662899 0.40624999 0.40625 13.66291 0.40625 30 C 0.40624999 46.337101 13.6629 59.59377 30 59.59375 C 46.337099 59.593749 59.59365 46.33711 59.59375 30 C 59.59375 13.662901 46.3371 0.40626 30 0.40625 z M 15.03125 23.34375 L 44.96875 23.34375 C 46.83825 23.343751 48.34375 24.84905 48.34375 26.71875 L 48.34375 33.3125 C 48.34375 35.182239 46.83845 36.68751 44.96875 36.6875 L 15.03125 36.6875 C 13.16175 36.687529 11.65635 35.18222 11.65625 33.3125 L 11.65625 26.71875 C 11.65625 24.849031 13.16165 23.34376 15.03125 23.34375 z "
transform="translate(498.57383,439.50749)"
id="path2382" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -32,6 +32,7 @@ class Launcher:
top_dir = os.path.dirname(scripts_dir) top_dir = os.path.dirname(scripts_dir)
self.plugin_dir = os.path.join(top_dir, "src") self.plugin_dir = os.path.join(top_dir, "src")
self.js_dir = os.path.join(top_dir, "js") self.js_dir = os.path.join(top_dir, "js")
self.data_dir = os.path.join(top_dir, "data")
parser = OptionParser() parser = OptionParser()
parser.add_option("-g", "--debug", action="store_true", parser.add_option("-g", "--debug", action="store_true",
@ -90,6 +91,7 @@ class Launcher:
# Now launch metacity-clutter with our plugin # Now launch metacity-clutter with our plugin
env=dict(os.environ) env=dict(os.environ)
env.update({'GNOME_SHELL_JS' : self.js_dir, env.update({'GNOME_SHELL_JS' : self.js_dir,
'GNOME_SHELL_DATADIR' : self.data_dir,
'GI_TYPELIB_PATH' : self.plugin_dir, 'GI_TYPELIB_PATH' : self.plugin_dir,
'LD_LIBRARY_PATH' : os.environ.get('LD_LIBRARY_PATH', '') + ':' + self.plugin_dir, 'LD_LIBRARY_PATH' : os.environ.get('LD_LIBRARY_PATH', '') + ':' + self.plugin_dir,
'GNOME_DISABLE_CRASH_DIALOG' : '1'}) 'GNOME_DISABLE_CRASH_DIALOG' : '1'})

View File

@ -12,6 +12,7 @@ gnome_shell_cflags = \
$(MUTTER_PLUGIN_CFLAGS) \ $(MUTTER_PLUGIN_CFLAGS) \
-Itray \ -Itray \
-DGETTEXT_PACKAGE=gnome-shell \ -DGETTEXT_PACKAGE=gnome-shell \
-DGNOME_SHELL_DATADIR=\"$(pkgdatadir)\" \
-DGNOME_SHELL_PKGLIBDIR=\"$(pkglibdir)\" \ -DGNOME_SHELL_PKGLIBDIR=\"$(pkglibdir)\" \
-DJSDIR=\"$(pkgdatadir)/js\" -DJSDIR=\"$(pkgdatadir)/js\"

View File

@ -15,6 +15,7 @@ struct _ShellGlobal {
MutterPlugin *plugin; MutterPlugin *plugin;
ShellWM *wm; ShellWM *wm;
gboolean keyboard_grabbed; gboolean keyboard_grabbed;
const char *imagedir;
}; };
enum { enum {
@ -26,7 +27,8 @@ enum {
PROP_SCREEN_HEIGHT, PROP_SCREEN_HEIGHT,
PROP_STAGE, PROP_STAGE,
PROP_WINDOW_GROUP, PROP_WINDOW_GROUP,
PROP_WINDOW_MANAGER PROP_WINDOW_MANAGER,
PROP_IMAGEDIR
}; };
/* Signals */ /* Signals */
@ -96,6 +98,9 @@ shell_global_get_property(GObject *object,
case PROP_WINDOW_MANAGER: case PROP_WINDOW_MANAGER:
g_value_set_object (value, global->wm); g_value_set_object (value, global->wm);
break; break;
case PROP_IMAGEDIR:
g_value_set_string (value, global->imagedir);
break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break; break;
@ -103,8 +108,26 @@ shell_global_get_property(GObject *object,
} }
static void static void
shell_global_init(ShellGlobal *global) shell_global_init (ShellGlobal *global)
{ {
const char *datadir = g_getenv ("GNOME_SHELL_DATADIR");
char *imagedir;
if (!datadir)
datadir = GNOME_SHELL_DATADIR;
/* We make sure imagedir ends with a '/', since the JS won't have
* access to g_build_filename() and so will end up just
* concatenating global.imagedir to a filename.
*/
imagedir = g_build_filename (datadir, "images/", NULL);
if (g_file_test (imagedir, G_FILE_TEST_IS_DIR))
global->imagedir = imagedir;
else
{
g_free (imagedir);
global->imagedir = g_strdup_printf ("%s/", datadir);
}
} }
static void static void
@ -183,6 +206,13 @@ shell_global_class_init (ShellGlobalClass *klass)
"Window management interface", "Window management interface",
SHELL_TYPE_WM, SHELL_TYPE_WM,
G_PARAM_READABLE)); G_PARAM_READABLE));
g_object_class_install_property (gobject_class,
PROP_IMAGEDIR,
g_param_spec_string ("imagedir",
"Image directory",
"Directory containing gnome-shell image files",
NULL,
G_PARAM_READABLE));
} }
/** /**