mirror of
https://github.com/davatorium/rofi.git
synced 2024-11-25 13:55:34 -05:00
Add @theme import command, that resets the current theme.
This commit is contained in:
parent
ae8e7d9964
commit
99f2a1a9bf
4 changed files with 20 additions and 2 deletions
|
@ -288,6 +288,11 @@ GList *rofi_theme_get_list ( const widget *widget, const char * property, const
|
|||
*/
|
||||
gboolean rofi_theme_is_empty ( void );
|
||||
|
||||
|
||||
/**
|
||||
* Reset the current theme.
|
||||
*/
|
||||
void rofi_theme_reset ( void );
|
||||
#ifdef THEME_CONVERTER
|
||||
/**
|
||||
* Convert old theme colors into default one.
|
||||
|
|
|
@ -229,6 +229,7 @@ C_COMMENT_OPEN "/*"
|
|||
|
||||
|
||||
INCLUDE "@import"
|
||||
THEME "@theme"
|
||||
|
||||
CONFIGURATION (?i:configuration)
|
||||
|
||||
|
@ -301,6 +302,11 @@ if ( queue == NULL ){
|
|||
<INITIAL>{INCLUDE} {
|
||||
g_queue_push_head ( queue, GINT_TO_POINTER (YY_START) );
|
||||
BEGIN(INCLUDE);
|
||||
}
|
||||
<INITIAL>{THEME} {
|
||||
rofi_theme_reset();
|
||||
g_queue_push_head ( queue, GINT_TO_POINTER (YY_START) );
|
||||
BEGIN(INCLUDE);
|
||||
}
|
||||
/** Skip all whitespace */
|
||||
<INCLUDE>{WHITESPACE} {}
|
||||
|
|
|
@ -256,8 +256,8 @@ t_entry_list:
|
|||
%empty {
|
||||
// There is always a base widget.
|
||||
if (rofi_theme == NULL ){
|
||||
$$ = rofi_theme = g_slice_new0 ( ThemeWidget );
|
||||
rofi_theme->name = g_strdup ( "Root" );
|
||||
rofi_theme_reset();
|
||||
$$ = rofi_theme;
|
||||
}
|
||||
}
|
||||
| t_entry_list
|
||||
|
|
|
@ -111,6 +111,13 @@ void rofi_theme_property_free ( Property *p )
|
|||
g_slice_free ( Property, p );
|
||||
}
|
||||
|
||||
void rofi_theme_reset ( void )
|
||||
{
|
||||
rofi_theme_free ( rofi_theme );
|
||||
rofi_theme = g_slice_new0 ( ThemeWidget );
|
||||
rofi_theme->name = g_strdup("Root");
|
||||
}
|
||||
|
||||
void rofi_theme_free ( ThemeWidget *widget )
|
||||
{
|
||||
if ( widget == NULL ) {
|
||||
|
|
Loading…
Reference in a new issue