diff options
| author | Přemysl Eric Janouch <p@janouch.name> | 2021-11-20 20:55:24 +0100 | 
|---|---|---|
| committer | Přemysl Eric Janouch <p@janouch.name> | 2021-11-20 22:02:02 +0100 | 
| commit | 8376ae9c4a6587cb664c353c1649fad666e1fbf2 (patch) | |
| tree | 9006e1546f4f34aab4b203bf93033cdf2f08812d | |
| parent | 5ebfebb8fc08c7b5fc7fee85afeca270d712ae13 (diff) | |
| download | fiv-8376ae9c4a6587cb664c353c1649fad666e1fbf2.tar.gz fiv-8376ae9c4a6587cb664c353c1649fad666e1fbf2.tar.xz fiv-8376ae9c4a6587cb664c353c1649fad666e1fbf2.zip  | |
Add some custom action buttons to the sidebar
So far they're inactive, and do not do anything.
Change the icon for the current directory to stand out.
| -rw-r--r-- | fastiv-sidebar.c | 62 | ||||
| -rw-r--r-- | fastiv.c | 4 | ||||
| -rw-r--r-- | meson.build | 9 | ||||
| -rw-r--r-- | resources/LICENSE | 5 | ||||
| -rw-r--r-- | resources/circle-filled-symbolic.svg | 150 | ||||
| -rw-r--r-- | resources/funnel-symbolic.svg | 150 | ||||
| -rw-r--r-- | resources/resources.gresource.xml | 7 | 
7 files changed, 374 insertions, 13 deletions
diff --git a/fastiv-sidebar.c b/fastiv-sidebar.c index f15ecd3..5d78667 100644 --- a/fastiv-sidebar.c +++ b/fastiv-sidebar.c @@ -129,11 +129,10 @@ update_location(FastivSidebar *self, GFile *location)  			create_row(parent, "go-up-symbolic"));  	} -	// Another option would be "folder-open-symbolic", -	// "*-visiting-*" is mildly inappropriate (means: open in another window). -	// TODO(p): Try out "circle-filled-symbolic". +	// Other options are "folder-{visiting,open}-symbolic", though the former +	// is mildly inappropriate (means: open in another window).  	gtk_container_add(GTK_CONTAINER(self->listbox), -		create_row(self->location, "folder-visiting-symbolic")); +		create_row(self->location, "circle-filled-symbolic"));  	GFileEnumerator *enumerator = g_file_enumerate_children(self->location,  		G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME @@ -339,25 +338,64 @@ fastiv_sidebar_init(FastivSidebar *self)  		GTK_POLICY_NEVER, GTK_POLICY_NEVER);  	// Fill up what would otherwise be wasted space, -	// as it is in the example of Nautilus and Thunar. -	GtkWidget *superbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); -	gtk_container_add( -		GTK_CONTAINER(superbox), GTK_WIDGET(self->places)); -	gtk_container_add( -		GTK_CONTAINER(superbox), gtk_separator_new(GTK_ORIENTATION_VERTICAL)); +	// as it is in the examples of Nautilus and Thunar. +	GtkWidget *plus = gtk_button_new_from_icon_name("zoom-in-symbolic", +		GTK_ICON_SIZE_BUTTON); +	gtk_widget_set_tooltip_text(plus, "Larger thumbnails"); +	GtkWidget *minus = gtk_button_new_from_icon_name("zoom-out-symbolic", +		GTK_ICON_SIZE_BUTTON); +	gtk_widget_set_tooltip_text(minus, "Smaller thumbnails"); + +	GtkWidget *zoom_group = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); +	gtk_style_context_add_class( +		gtk_widget_get_style_context(zoom_group), GTK_STYLE_CLASS_LINKED); +	gtk_box_pack_start(GTK_BOX(zoom_group), plus, FALSE, FALSE, 0); +	gtk_box_pack_start(GTK_BOX(zoom_group), minus, FALSE, FALSE, 0); + +	GtkWidget *funnel = gtk_toggle_button_new(); +	gtk_container_add(GTK_CONTAINER(funnel), +		gtk_image_new_from_icon_name("funnel-symbolic", GTK_ICON_SIZE_BUTTON)); +	gtk_widget_set_tooltip_text(funnel, "Hide unsupported files"); + +	// None of GtkActionBar, GtkToolbar, .inline-toolbar is appropriate. +	// It is either borders or padding. +	GtkWidget *buttons = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 12); +	gtk_style_context_add_class( +		gtk_widget_get_style_context(buttons), GTK_STYLE_CLASS_TOOLBAR); +	gtk_box_pack_start(GTK_BOX(buttons), zoom_group, FALSE, FALSE, 0); +	gtk_box_pack_start(GTK_BOX(buttons), funnel, FALSE, FALSE, 0); +	gtk_widget_set_halign(buttons, GTK_ALIGN_CENTER); + +	// TODO(p): Implement. Probably fill `buttons` in externally. +	gtk_widget_set_sensitive(plus, FALSE); +	gtk_widget_set_sensitive(minus, FALSE); +	gtk_widget_set_sensitive(funnel, FALSE);  	self->listbox = gtk_list_box_new();  	gtk_list_box_set_selection_mode(  		GTK_LIST_BOX(self->listbox), GTK_SELECTION_NONE);  	g_signal_connect(self->listbox, "row-activated",  		G_CALLBACK(on_open_breadcrumb), self); -	gtk_container_add(GTK_CONTAINER(superbox), self->listbox); + +	GtkWidget *superbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); +	gtk_container_add( +		GTK_CONTAINER(superbox), GTK_WIDGET(self->places)); +	gtk_container_add( +		GTK_CONTAINER(superbox), gtk_separator_new(GTK_ORIENTATION_VERTICAL)); +	gtk_container_add( +		GTK_CONTAINER(superbox), buttons); +	gtk_container_add( +		GTK_CONTAINER(superbox), gtk_separator_new(GTK_ORIENTATION_VERTICAL)); +	gtk_container_add( +		GTK_CONTAINER(superbox), self->listbox); +	gtk_container_add(GTK_CONTAINER(self), superbox);  	gtk_scrolled_window_set_policy(  		GTK_SCROLLED_WINDOW(self), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);  	gtk_style_context_add_class(gtk_widget_get_style_context(GTK_WIDGET(self)),  		GTK_STYLE_CLASS_SIDEBAR); -	gtk_container_add(GTK_CONTAINER(self), superbox); +	gtk_style_context_add_class(gtk_widget_get_style_context(GTK_WIDGET(self)), +		"fastiv");  }  // --- Public interface -------------------------------------------------------- @@ -482,11 +482,15 @@ main(int argc, char *argv[])  	const gchar *path_arg = path_args ? path_args[0] : NULL;  	gtk_window_set_default_icon_name(PROJECT_NAME); +	gtk_icon_theme_add_resource_path( +		gtk_icon_theme_get_default(), "/org/gnome/design/IconLibrary/");  	// This is incredibly broken https://stackoverflow.com/a/51054396/76313  	// thus resolving the problem using overlaps.  	const char *style = "@define-color fastiv-tile #3c3c3c; \  		fastiv-view, fastiv-browser { background: #222; } \ +		placessidebar.fastiv .toolbar { padding: 2px 6px; } \ +		placessidebar.fastiv box > separator { margin: 4px 0; } \  		fastiv-browser { padding: 5px; } \  		fastiv-browser.item { \  			border: 1px solid rgba(255, 255, 255, 0.375); \ diff --git a/meson.build b/meson.build index 61f3f52..970f81a 100644 --- a/meson.build +++ b/meson.build @@ -36,8 +36,15 @@ configure_file(  	configuration : conf,  ) +gnome = import('gnome') +resources = gnome.compile_resources('resources', +	'resources/resources.gresource.xml', +	source_dir : 'resources', +	c_name : 'resources', +) +  exe = executable('fastiv', 'fastiv.c', 'fastiv-view.c', 'fastiv-io.c', -	'fastiv-browser.c', 'fastiv-sidebar.c', 'xdg.c', +	'fastiv-browser.c', 'fastiv-sidebar.c', 'xdg.c', resources,  	install : true,  	dependencies : [dependencies]) diff --git a/resources/LICENSE b/resources/LICENSE new file mode 100644 index 0000000..4e56629 --- /dev/null +++ b/resources/LICENSE @@ -0,0 +1,5 @@ +Symbolic icons originate from the Icon Development Kit[0]. +The authors have disclaimed most of their rights to the works under CC0 1.0[1]. + +[0] https://gitlab.gnome.org/Teams/Design/icon-development-kit/ +[1] https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/resources/circle-filled-symbolic.svg b/resources/circle-filled-symbolic.svg new file mode 100644 index 0000000..fe1a288 --- /dev/null +++ b/resources/circle-filled-symbolic.svg @@ -0,0 +1,150 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +    <filter id="a" height="100%" width="100%" x="0%" y="0%"> +        <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/> +    </filter> +    <mask id="b"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.3"/> +        </g> +    </mask> +    <clipPath id="c"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="d"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/> +        </g> +    </mask> +    <clipPath id="e"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="f"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/> +        </g> +    </mask> +    <clipPath id="g"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="h"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/> +        </g> +    </mask> +    <clipPath id="i"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="j"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/> +        </g> +    </mask> +    <clipPath id="k"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="l"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/> +        </g> +    </mask> +    <clipPath id="m"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="n"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/> +        </g> +    </mask> +    <clipPath id="o"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="p"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.3"/> +        </g> +    </mask> +    <clipPath id="q"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="r"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.5"/> +        </g> +    </mask> +    <clipPath id="s"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="t"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.4"/> +        </g> +    </mask> +    <clipPath id="u"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="v"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.4"/> +        </g> +    </mask> +    <clipPath id="w"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="x"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.5"/> +        </g> +    </mask> +    <clipPath id="y"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="z"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.5"/> +        </g> +    </mask> +    <clipPath id="A"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <path d="m 8 1 c -3.855469 0 -7 3.144531 -7 7 s 3.144531 7 7 7 s 7 -3.144531 7 -7 s -3.144531 -7 -7 -7 z m 0 0" fill="#2e3436"/> +    <g clip-path="url(#c)" mask="url(#b)" transform="matrix(1 0 0 1 -580 -480)"> +        <path d="m 562.460938 212.058594 h 10.449218 c -1.183594 0.492187 -1.296875 2.460937 0 3 h -10.449218 z m 0 0" fill="#2e3436"/> +    </g> +    <g clip-path="url(#e)" mask="url(#d)" transform="matrix(1 0 0 1 -580 -480)"> +        <path d="m 16 632 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/> +    </g> +    <g clip-path="url(#g)" mask="url(#f)" transform="matrix(1 0 0 1 -580 -480)"> +        <path d="m 17 631 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/> +    </g> +    <g clip-path="url(#i)" mask="url(#h)" transform="matrix(1 0 0 1 -580 -480)"> +        <path d="m 18 634 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/> +    </g> +    <g clip-path="url(#k)" mask="url(#j)" transform="matrix(1 0 0 1 -580 -480)"> +        <path d="m 16 634 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/> +    </g> +    <g clip-path="url(#m)" mask="url(#l)" transform="matrix(1 0 0 1 -580 -480)"> +        <path d="m 17 635 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/> +    </g> +    <g clip-path="url(#o)" mask="url(#n)" transform="matrix(1 0 0 1 -580 -480)"> +        <path d="m 19 635 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/> +    </g> +    <g clip-path="url(#q)" mask="url(#p)" transform="matrix(1 0 0 1 -580 -480)"> +        <path d="m 136 660 v 7 h 7 v -7 z m 0 0" fill="#2e3436"/> +    </g> +    <g clip-path="url(#s)" mask="url(#r)" transform="matrix(1 0 0 1 -580 -480)"> +        <path d="m 199 642 h 3 v 12 h -3 z m 0 0" fill="#2e3436"/> +    </g> +    <g clip-path="url(#u)" mask="url(#t)" transform="matrix(1 0 0 1 -580 -480)"> +        <path d="m 209.5 144.160156 c 0.277344 0 0.5 0.222656 0.5 0.5 v 1 c 0 0.277344 -0.222656 0.5 -0.5 0.5 s -0.5 -0.222656 -0.5 -0.5 v -1 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 z m 0 0" fill="#2e3436"/> +    </g> +    <g clip-path="url(#w)" mask="url(#v)" transform="matrix(1 0 0 1 -580 -480)"> +        <path d="m 206.5 144.160156 c 0.277344 0 0.5 0.222656 0.5 0.5 v 1 c 0 0.277344 -0.222656 0.5 -0.5 0.5 s -0.5 -0.222656 -0.5 -0.5 v -1 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 z m 0 0" fill="#2e3436"/> +    </g> +    <g clip-path="url(#y)" mask="url(#x)" transform="matrix(1 0 0 1 -580 -480)"> +        <path d="m 229.5 143.160156 c -0.546875 0 -1 0.457032 -1 1 c 0 0.546875 0.453125 1 1 1 s 1 -0.453125 1 -1 c 0 -0.542968 -0.453125 -1 -1 -1 z m 0 0" fill="#2e3436"/> +    </g> +    <g clip-path="url(#A)" mask="url(#z)" transform="matrix(1 0 0 1 -580 -480)"> +        <path d="m 226.453125 143.160156 c -0.519531 0 -0.953125 0.433594 -0.953125 0.953125 v 0.09375 c 0 0.519531 0.433594 0.953125 0.953125 0.953125 h 0.09375 c 0.519531 0 0.953125 -0.433594 0.953125 -0.953125 v -0.09375 c 0 -0.519531 -0.433594 -0.953125 -0.953125 -0.953125 z m 0 0" fill="#2e3436"/> +    </g> +</svg> diff --git a/resources/funnel-symbolic.svg b/resources/funnel-symbolic.svg new file mode 100644 index 0000000..e0eba8a --- /dev/null +++ b/resources/funnel-symbolic.svg @@ -0,0 +1,150 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +    <filter id="a" height="100%" width="100%" x="0%" y="0%"> +        <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/> +    </filter> +    <mask id="b"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.3"/> +        </g> +    </mask> +    <clipPath id="c"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="d"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/> +        </g> +    </mask> +    <clipPath id="e"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="f"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/> +        </g> +    </mask> +    <clipPath id="g"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="h"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/> +        </g> +    </mask> +    <clipPath id="i"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="j"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/> +        </g> +    </mask> +    <clipPath id="k"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="l"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/> +        </g> +    </mask> +    <clipPath id="m"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="n"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/> +        </g> +    </mask> +    <clipPath id="o"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="p"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.3"/> +        </g> +    </mask> +    <clipPath id="q"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="r"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.5"/> +        </g> +    </mask> +    <clipPath id="s"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="t"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.4"/> +        </g> +    </mask> +    <clipPath id="u"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="v"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.4"/> +        </g> +    </mask> +    <clipPath id="w"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="x"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.5"/> +        </g> +    </mask> +    <clipPath id="y"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <mask id="z"> +        <g filter="url(#a)"> +            <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.5"/> +        </g> +    </mask> +    <clipPath id="A"> +        <path d="m 0 0 h 1024 v 800 h -1024 z"/> +    </clipPath> +    <path d="m 0 1.007812 h 15 l -6 7 v 6 l -3 2 v -8 z m 0 0" fill="#2e3436"/> +    <g clip-path="url(#c)" mask="url(#b)" transform="matrix(1 0 0 1 -720 -664)"> +        <path d="m 562.460938 212.058594 h 10.449218 c -1.183594 0.492187 -1.296875 2.460937 0 3 h -10.449218 z m 0 0" fill="#2e3436"/> +    </g> +    <g clip-path="url(#e)" mask="url(#d)" transform="matrix(1 0 0 1 -720 -664)"> +        <path d="m 16 632 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/> +    </g> +    <g clip-path="url(#g)" mask="url(#f)" transform="matrix(1 0 0 1 -720 -664)"> +        <path d="m 17 631 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/> +    </g> +    <g clip-path="url(#i)" mask="url(#h)" transform="matrix(1 0 0 1 -720 -664)"> +        <path d="m 18 634 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/> +    </g> +    <g clip-path="url(#k)" mask="url(#j)" transform="matrix(1 0 0 1 -720 -664)"> +        <path d="m 16 634 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/> +    </g> +    <g clip-path="url(#m)" mask="url(#l)" transform="matrix(1 0 0 1 -720 -664)"> +        <path d="m 17 635 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/> +    </g> +    <g clip-path="url(#o)" mask="url(#n)" transform="matrix(1 0 0 1 -720 -664)"> +        <path d="m 19 635 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/> +    </g> +    <g clip-path="url(#q)" mask="url(#p)" transform="matrix(1 0 0 1 -720 -664)"> +        <path d="m 136 660 v 7 h 7 v -7 z m 0 0" fill="#2e3436"/> +    </g> +    <g clip-path="url(#s)" mask="url(#r)" transform="matrix(1 0 0 1 -720 -664)"> +        <path d="m 199 642 h 3 v 12 h -3 z m 0 0" fill="#2e3436"/> +    </g> +    <g clip-path="url(#u)" mask="url(#t)" transform="matrix(1 0 0 1 -720 -664)"> +        <path d="m 209.5 144.160156 c 0.277344 0 0.5 0.222656 0.5 0.5 v 1 c 0 0.277344 -0.222656 0.5 -0.5 0.5 s -0.5 -0.222656 -0.5 -0.5 v -1 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 z m 0 0" fill="#2e3436"/> +    </g> +    <g clip-path="url(#w)" mask="url(#v)" transform="matrix(1 0 0 1 -720 -664)"> +        <path d="m 206.5 144.160156 c 0.277344 0 0.5 0.222656 0.5 0.5 v 1 c 0 0.277344 -0.222656 0.5 -0.5 0.5 s -0.5 -0.222656 -0.5 -0.5 v -1 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 z m 0 0" fill="#2e3436"/> +    </g> +    <g clip-path="url(#y)" mask="url(#x)" transform="matrix(1 0 0 1 -720 -664)"> +        <path d="m 229.5 143.160156 c -0.546875 0 -1 0.457032 -1 1 c 0 0.546875 0.453125 1 1 1 s 1 -0.453125 1 -1 c 0 -0.542968 -0.453125 -1 -1 -1 z m 0 0" fill="#2e3436"/> +    </g> +    <g clip-path="url(#A)" mask="url(#z)" transform="matrix(1 0 0 1 -720 -664)"> +        <path d="m 226.453125 143.160156 c -0.519531 0 -0.953125 0.433594 -0.953125 0.953125 v 0.09375 c 0 0.519531 0.433594 0.953125 0.953125 0.953125 h 0.09375 c 0.519531 0 0.953125 -0.433594 0.953125 -0.953125 v -0.09375 c 0 -0.519531 -0.433594 -0.953125 -0.953125 -0.953125 z m 0 0" fill="#2e3436"/> +    </g> +</svg> diff --git a/resources/resources.gresource.xml b/resources/resources.gresource.xml new file mode 100644 index 0000000..b229292 --- /dev/null +++ b/resources/resources.gresource.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<gresources> +	<gresource prefix="/org/gnome/design/IconLibrary/"> +		<file preprocess="xml-stripblanks">circle-filled-symbolic.svg</file> +		<file preprocess="xml-stripblanks">funnel-symbolic.svg</file> +	</gresource> +</gresources>  | 
