Thread overview
Using CSS Data from Within My Code
2 days ago
Ron Tarrant
2 days ago
Max Samukha
2 days ago
Andrea Fontana
2 days ago
Ron Tarrant
2 days ago
Ron Tarrant
2 days ago
Mike Parker
2 days ago
Ron Tarrant
2 days ago
Ali Çehreli
1 day ago
Ron Tarrant
2 days ago
I found this presented as a solution in a 2016 post:

On Wednesday, 15 June 2016 at 22:05:37 UTC, captaindet wrote:

> enum myCSS = q{
>     GtkNotebook {
>         background-color: #e9e9e9;
>     }
>     GtkNotebook tab {
>         background-color: #d6d6d6;
>     }
> };

But when I try to use it, I get the following errors:

Warning: C preprocessor directive #e9e9e9 is not supported
Warning: C preprocessor directive #d6d6d6 is not supported

I thought it was odd having 'q' in front of the opening curly brace... is this a typo? Shorthand for "string quote"? Something like that?

Or do I need to escape these somehow?


2 days ago
On Thursday, 12 September 2019 at 09:54:35 UTC, Ron Tarrant wrote:
> I found this presented as a solution in a 2016 post:
>
> On Wednesday, 15 June 2016 at 22:05:37 UTC, captaindet wrote:
>
>> enum myCSS = q{
>>     GtkNotebook {
>>         background-color: #e9e9e9;
>>     }
>>     GtkNotebook tab {
>>         background-color: #d6d6d6;
>>     }
>> };
>
> But when I try to use it, I get the following errors:
>
> Warning: C preprocessor directive #e9e9e9 is not supported
> Warning: C preprocessor directive #d6d6d6 is not supported
>
> I thought it was odd having 'q' in front of the opening curly brace... is this a typo? Shorthand for "string quote"? Something like that?
>
> Or do I need to escape these somehow?

q{} is a string that must only contain valid D tokens. D lexer does not like C directives. https://dlang.org/spec/lex.html#token_strings
2 days ago
On Thursday, 12 September 2019 at 09:54:35 UTC, Ron Tarrant wrote:
> I found this presented as a solution in a 2016 post:
>
> On Wednesday, 15 June 2016 at 22:05:37 UTC, captaindet wrote:
>
>> enum myCSS = q{
>>     GtkNotebook {
>>         background-color: #e9e9e9;
>>     }
>>     GtkNotebook tab {
>>         background-color: #d6d6d6;
>>     }
>> };
>
> But when I try to use it, I get the following errors:
>
> Warning: C preprocessor directive #e9e9e9 is not supported
> Warning: C preprocessor directive #d6d6d6 is not supported
>
> I thought it was odd having 'q' in front of the opening curly brace... is this a typo? Shorthand for "string quote"? Something like that?
>
> Or do I need to escape these somehow?

They are named "token string" and contained code must be a valid d code. See https://dlang.org/spec/lex.html#token_strings

2 days ago
On Thursday, 12 September 2019 at 10:09:06 UTC, Andrea Fontana wrote:
> On Thursday, 12 September 2019 at 09:54:35 UTC, Ron Tarrant wrote:
>> I found this presented as a solution in a 2016 post:
>>
>> On Wednesday, 15 June 2016 at 22:05:37 UTC, captaindet wrote:
>>
>>> enum myCSS = q{
>>>     GtkNotebook {
>>>         background-color: #e9e9e9;
>>>     }
>>>     GtkNotebook tab {
>>>         background-color: #d6d6d6;
>>>     }
>>> };
>>
>> But when I try to use it, I get the following errors:
>>
>> Warning: C preprocessor directive #e9e9e9 is not supported
>> Warning: C preprocessor directive #d6d6d6 is not supported
>>
>> I thought it was odd having 'q' in front of the opening curly brace... is this a typo? Shorthand for "string quote"? Something like that?
>>
>> Or do I need to escape these somehow?
>
> They are named "token string" and contained code must be a valid d code. See https://dlang.org/spec/lex.html#token_strings

Thanks, Andrea and Max.

Turns out there's a simpler way to inject CSS into D code. In case anyone else comes looking, I found that instead of an enum, a string will do. Here's the solution I came up with to make visible tabs in a Notebook:

class CSS // GTK4 compliant
{
	CssProvider provider;
	string cssPath = "./css/visible_tabs.css";

	string myCSS = "tab { background-color: #f2f2f2; }";

	this(StyleContext styleContext)
	{
		provider = new CssProvider();
		provider.loadFromData(myCSS);
		styleContext.addProvider(provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
		
	} // this()	
	
} // class CSS

And in the class that will use it, this line does it:

	css = new CSS(getStyleContext());


2 days ago
On Thursday, 12 September 2019 at 11:35:04 UTC, Ron Tarrant wrote:
> On Thursday, 12 September 2019 at 10:09:06 UTC, Andrea Fontana wrote:
>> On Thursday, 12 September 2019 at 09:54:35 UTC, Ron Tarrant wrote:
>>> I found this presented as a solution in a 2016 post:
>>>
>>> On Wednesday, 15 June 2016 at 22:05:37 UTC, captaindet wrote:
>>>
>>>> enum myCSS = q{
>>>>     GtkNotebook {
>>>>         background-color: #e9e9e9;
>>>>     }
>>>>     GtkNotebook tab {
>>>>         background-color: #d6d6d6;
>>>>     }
>>>> };
>>>
>>> But when I try to use it, I get the following errors:
>>>
>>> Warning: C preprocessor directive #e9e9e9 is not supported
>>> Warning: C preprocessor directive #d6d6d6 is not supported
>>>
>>> I thought it was odd having 'q' in front of the opening curly brace... is this a typo? Shorthand for "string quote"? Something like that?
>>>
>>> Or do I need to escape these somehow?
>>
>> They are named "token string" and contained code must be a valid d code. See https://dlang.org/spec/lex.html#token_strings
>
> Thanks, Andrea and Max.
>
> Turns out there's a simpler way to inject CSS into D code. In case anyone else comes looking, I found that instead of an enum, a string will do. Here's the solution I came up with to make visible tabs in a Notebook:
>

That should have been:

class CSS // GTK4 compliant
{
	CssProvider provider;
	string myCSS = "tab { background-color: #f2f2f2; }";

	this(StyleContext styleContext)
	{
		provider = new CssProvider();
		provider.loadFromData(myCSS);
		styleContext.addProvider(provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
		
	} // this()	
	
} // class CSS

The CSS path/file name isn't needed.

2 days ago
On Thursday, 12 September 2019 at 11:40:33 UTC, Ron Tarrant wrote:

> 	string myCSS = "tab { background-color: #f2f2f2; }";
>
>

enum will work just as well here and without the need for the variable:

        enum myCSS = "tab { background-color: #f2f2f2; }";

The original error was because q strings have to be valid D, not because of the enum.
2 days ago
On Thursday, 12 September 2019 at 13:09:16 UTC, Mike Parker wrote:
> On Thursday, 12 September 2019 at 11:40:33 UTC, Ron Tarrant wrote:
>
>> 	string myCSS = "tab { background-color: #f2f2f2; }";
>>
>>
>
> enum will work just as well here and without the need for the variable:
>
>         enum myCSS = "tab { background-color: #f2f2f2; }";
>
> The original error was because q strings have to be valid D, not because of the enum.

Ah! Thanks for clearing that up, Mike. My D knowledge is still rather sparse, so this fills in another blank for me.
2 days ago
On 09/12/2019 02:54 AM, Ron Tarrant wrote:

> I thought it was odd having 'q' in front of the opening curly brace...

I think my index can be useful in such searches. Both q"" and q{} are there:

  http://ddili.org/ders/d.en/ix.html

Ali

1 day ago
On Thursday, 12 September 2019 at 19:14:26 UTC, Ali Çehreli wrote:
> On 09/12/2019 02:54 AM, Ron Tarrant wrote:
>
> > I thought it was odd having 'q' in front of the opening curly
> brace...
>
> I think my index can be useful in such searches. Both q"" and q{} are there:
>
>   http://ddili.org/ders/d.en/ix.html
>
> Ali

Thanks, Ali. I suppose I should be looking in your book first when I have a question... as I so often do.