2017-04-15 06:32:05 -04:00
|
|
|
/*
|
|
|
|
* rofi
|
|
|
|
*
|
|
|
|
* MIT/X11 License
|
|
|
|
* Copyright © 2013-2017 Qball Cow <qball@gmpclient.org>
|
|
|
|
*
|
|
|
|
* Permission is hereby granted, free of charge, to any person obtaining
|
|
|
|
* a copy of this software and associated documentation files (the
|
|
|
|
* "Software"), to deal in the Software without restriction, including
|
|
|
|
* without limitation the rights to use, copy, modify, merge, publish,
|
|
|
|
* distribute, sublicense, and/or sell copies of the Software, and to
|
|
|
|
* permit persons to whom the Software is furnished to do so, subject to
|
|
|
|
* the following conditions:
|
|
|
|
*
|
|
|
|
* The above copyright notice and this permission notice shall be
|
|
|
|
* included in all copies or substantial portions of the Software.
|
|
|
|
*
|
|
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
|
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
|
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
|
|
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
|
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
|
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2016-12-09 13:49:49 -05:00
|
|
|
#ifndef THEME_H
|
|
|
|
#define THEME_H
|
|
|
|
#include <glib.h>
|
2016-12-11 06:19:46 -05:00
|
|
|
#include <cairo.h>
|
2017-01-04 16:27:27 -05:00
|
|
|
#include <widgets/widget.h>
|
2017-01-06 13:04:25 -05:00
|
|
|
#include <settings.h>
|
2017-03-28 11:33:43 -04:00
|
|
|
#include "theme.h"
|
2017-01-01 12:08:49 -05:00
|
|
|
|
2017-01-08 18:09:02 -05:00
|
|
|
/** Style of text highlight */
|
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
/** no highlight */
|
2017-06-02 10:09:20 -04:00
|
|
|
ROFI_HL_NONE = 0,
|
2017-01-08 18:09:02 -05:00
|
|
|
/** bold */
|
2017-06-02 10:09:20 -04:00
|
|
|
ROFI_HL_BOLD = 1,
|
2017-01-08 18:09:02 -05:00
|
|
|
/** underline */
|
2017-06-02 10:09:20 -04:00
|
|
|
ROFI_HL_UNDERLINE = 2,
|
2017-05-18 01:59:37 -04:00
|
|
|
/** strikethrough */
|
2017-06-02 10:09:20 -04:00
|
|
|
ROFI_HL_STRIKETHROUGH = 16,
|
2017-05-22 03:24:05 -04:00
|
|
|
/** small caps */
|
2017-06-02 10:09:20 -04:00
|
|
|
ROFI_HL_SMALL_CAPS = 32,
|
2017-01-08 18:09:02 -05:00
|
|
|
/** italic */
|
2017-06-02 10:09:20 -04:00
|
|
|
ROFI_HL_ITALIC = 4,
|
2017-01-08 18:09:02 -05:00
|
|
|
/** color */
|
2017-06-02 10:09:20 -04:00
|
|
|
ROFI_HL_COLOR = 8
|
|
|
|
} RofiHighlightStyle;
|
2017-01-08 18:09:02 -05:00
|
|
|
|
2017-01-08 10:23:17 -05:00
|
|
|
/** Style of line */
|
2017-01-08 15:36:06 -05:00
|
|
|
typedef enum
|
|
|
|
{
|
2017-01-08 10:23:17 -05:00
|
|
|
/** Solid line */
|
2017-06-02 10:21:05 -04:00
|
|
|
ROFI_HL_SOLID,
|
2017-01-08 10:23:17 -05:00
|
|
|
/** Dashed line */
|
2017-06-02 10:21:05 -04:00
|
|
|
ROFI_HL_DASH
|
|
|
|
} RofiLineStyle;
|
2017-01-08 10:23:17 -05:00
|
|
|
|
2017-01-01 12:08:49 -05:00
|
|
|
/**
|
|
|
|
* Distance unit type.
|
|
|
|
*/
|
2017-01-08 15:36:06 -05:00
|
|
|
typedef enum
|
|
|
|
{
|
2017-01-01 12:08:49 -05:00
|
|
|
/** PixelWidth in pixels. */
|
2017-06-02 10:21:05 -04:00
|
|
|
ROFI_PU_PX,
|
2017-01-01 12:08:49 -05:00
|
|
|
/** PixelWidth in EM. */
|
2017-06-02 10:21:05 -04:00
|
|
|
ROFI_PU_EM,
|
2017-01-03 13:23:09 -05:00
|
|
|
/** PixelWidget in percentage */
|
2017-06-02 10:21:05 -04:00
|
|
|
ROFI_PU_PERCENT,
|
|
|
|
} RofiPixelUnit;
|
2016-12-31 16:47:22 -05:00
|
|
|
|
2017-01-01 12:08:49 -05:00
|
|
|
/**
|
|
|
|
* Structure representing a distance.
|
|
|
|
*/
|
2017-01-08 15:36:06 -05:00
|
|
|
typedef struct
|
|
|
|
{
|
2017-01-01 12:08:49 -05:00
|
|
|
/** Distance */
|
2016-12-31 17:27:17 -05:00
|
|
|
double distance;
|
2017-01-01 12:08:49 -05:00
|
|
|
/** Unit type of the distance */
|
2017-06-02 10:21:05 -04:00
|
|
|
RofiPixelUnit type;
|
2017-06-02 10:34:52 -04:00
|
|
|
/** Style of the line (optional)*/
|
2017-06-02 10:21:05 -04:00
|
|
|
RofiLineStyle style;
|
2017-06-02 10:25:47 -04:00
|
|
|
} RofiDistance;
|
2016-12-31 16:47:22 -05:00
|
|
|
|
2017-01-03 13:23:09 -05:00
|
|
|
/**
|
|
|
|
* Type of orientation.
|
|
|
|
*/
|
2017-01-08 15:36:06 -05:00
|
|
|
typedef enum
|
|
|
|
{
|
2017-06-02 10:34:52 -04:00
|
|
|
ROFI_ORIENTATION_VERTICAL,
|
|
|
|
ROFI_ORIENTATION_HORIZONTAL
|
|
|
|
} RofiOrientation;
|
2017-01-01 12:08:49 -05:00
|
|
|
/**
|
|
|
|
* Type of property
|
|
|
|
*/
|
2017-01-08 15:36:06 -05:00
|
|
|
typedef enum
|
|
|
|
{
|
2017-01-01 12:08:49 -05:00
|
|
|
/** Integer */
|
2016-12-09 13:49:49 -05:00
|
|
|
P_INTEGER,
|
2017-01-01 12:08:49 -05:00
|
|
|
/** Double */
|
2016-12-09 16:16:31 -05:00
|
|
|
P_DOUBLE,
|
2017-01-01 12:08:49 -05:00
|
|
|
/** String */
|
2016-12-09 13:49:49 -05:00
|
|
|
P_STRING,
|
2017-01-01 12:08:49 -05:00
|
|
|
/** Boolean */
|
2016-12-09 13:49:49 -05:00
|
|
|
P_BOOLEAN,
|
2017-01-01 12:08:49 -05:00
|
|
|
/** Color */
|
2016-12-31 15:37:19 -05:00
|
|
|
P_COLOR,
|
2017-06-02 10:44:16 -04:00
|
|
|
/** RofiPadding */
|
2016-12-31 15:37:19 -05:00
|
|
|
P_PADDING,
|
2017-01-05 12:22:34 -05:00
|
|
|
/** Link to global setting */
|
|
|
|
P_LINK,
|
2017-01-06 13:04:25 -05:00
|
|
|
/** Position */
|
|
|
|
P_POSITION,
|
2017-01-08 18:09:02 -05:00
|
|
|
/** Highlight */
|
|
|
|
P_HIGHLIGHT,
|
2017-05-25 17:41:15 -04:00
|
|
|
/** List */
|
|
|
|
P_LIST,
|
2017-06-02 08:05:19 -04:00
|
|
|
/** Orientation */
|
|
|
|
P_ORIENTATION,
|
2016-12-09 13:49:49 -05:00
|
|
|
} PropertyType;
|
|
|
|
|
2017-01-01 12:08:49 -05:00
|
|
|
/**
|
|
|
|
* Represent the color in theme.
|
|
|
|
*/
|
2016-12-10 13:48:44 -05:00
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
/** red channel */
|
|
|
|
double red;
|
|
|
|
/** green channel */
|
|
|
|
double green;
|
|
|
|
/** blue channel */
|
|
|
|
double blue;
|
|
|
|
/** alpha channel */
|
|
|
|
double alpha;
|
|
|
|
} ThemeColor;
|
|
|
|
|
2017-01-01 12:08:49 -05:00
|
|
|
/**
|
2017-06-02 10:44:16 -04:00
|
|
|
* RofiPadding
|
2017-01-01 12:08:49 -05:00
|
|
|
*/
|
2016-12-27 16:19:15 -05:00
|
|
|
typedef struct
|
2017-01-08 15:36:06 -05:00
|
|
|
{
|
2017-06-02 10:25:47 -04:00
|
|
|
RofiDistance top;
|
|
|
|
RofiDistance right;
|
|
|
|
RofiDistance bottom;
|
|
|
|
RofiDistance left;
|
2017-06-02 10:44:16 -04:00
|
|
|
} RofiPadding;
|
2016-12-27 16:19:15 -05:00
|
|
|
|
2017-01-08 18:09:02 -05:00
|
|
|
/**
|
|
|
|
* Theme highlight.
|
|
|
|
*/
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
/** style to display */
|
2017-06-02 10:09:20 -04:00
|
|
|
RofiHighlightStyle style;
|
2017-01-08 18:09:02 -05:00
|
|
|
/** Color */
|
|
|
|
ThemeColor color;
|
2017-06-02 10:46:28 -04:00
|
|
|
} RofiHighlightColorStyle;
|
2017-05-25 17:41:15 -04:00
|
|
|
|
|
|
|
typedef union {
|
|
|
|
/** integer */
|
|
|
|
int i;
|
|
|
|
/** Double */
|
|
|
|
double f;
|
|
|
|
/** String */
|
|
|
|
char *s;
|
|
|
|
/** boolean */
|
|
|
|
gboolean b;
|
|
|
|
/** Color */
|
|
|
|
ThemeColor color;
|
2017-06-02 10:44:16 -04:00
|
|
|
/** RofiPadding */
|
|
|
|
RofiPadding padding;
|
2017-05-25 17:41:15 -04:00
|
|
|
/** Reference */
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
/** Name */
|
|
|
|
char *name;
|
|
|
|
/** Cached looked up ref */
|
|
|
|
struct Property *ref;
|
|
|
|
} link;
|
|
|
|
/** Highlight Style */
|
2017-06-02 10:46:28 -04:00
|
|
|
RofiHighlightColorStyle highlight;
|
2017-05-25 17:41:15 -04:00
|
|
|
/** List */
|
|
|
|
GList *list;
|
|
|
|
} PropertyValue;
|
|
|
|
|
2017-01-08 10:23:17 -05:00
|
|
|
/**
|
|
|
|
* Property structure.
|
|
|
|
*/
|
2017-01-08 15:36:06 -05:00
|
|
|
typedef struct Property
|
|
|
|
{
|
2017-01-08 10:23:17 -05:00
|
|
|
/** Name of property */
|
2017-01-08 15:36:06 -05:00
|
|
|
char *name;
|
2017-01-08 10:23:17 -05:00
|
|
|
/** Type of property. */
|
2016-12-09 13:49:49 -05:00
|
|
|
PropertyType type;
|
2017-01-08 10:23:17 -05:00
|
|
|
/** Value */
|
2017-05-25 17:41:15 -04:00
|
|
|
PropertyValue value;
|
2016-12-09 13:49:49 -05:00
|
|
|
} Property;
|
2017-01-01 12:08:49 -05:00
|
|
|
/**
|
|
|
|
* ThemeWidget.
|
|
|
|
*/
|
2017-01-08 15:36:06 -05:00
|
|
|
typedef struct ThemeWidget
|
|
|
|
{
|
|
|
|
int set;
|
|
|
|
char *name;
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2017-01-08 15:36:06 -05:00
|
|
|
unsigned int num_widgets;
|
2017-01-01 12:08:49 -05:00
|
|
|
struct ThemeWidget **widgets;
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2017-01-08 15:36:06 -05:00
|
|
|
GHashTable *properties;
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2017-01-01 12:08:49 -05:00
|
|
|
struct ThemeWidget *parent;
|
|
|
|
} ThemeWidget;
|
2016-12-10 13:48:44 -05:00
|
|
|
|
2017-01-01 12:08:49 -05:00
|
|
|
/**
|
|
|
|
* Global pointer to the current active theme.
|
|
|
|
*/
|
|
|
|
extern ThemeWidget *rofi_theme;
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2017-01-01 12:08:49 -05:00
|
|
|
/**
|
|
|
|
* @param base Handle to the current level in the theme.
|
2017-01-04 09:05:39 -05:00
|
|
|
* @param name Name of the new element.
|
2017-01-01 12:08:49 -05:00
|
|
|
*
|
|
|
|
* Create a new element in the theme structure.
|
|
|
|
*
|
|
|
|
* @returns handle to the new entry.
|
|
|
|
*/
|
2017-01-04 09:49:05 -05:00
|
|
|
ThemeWidget *rofi_theme_find_or_create_name ( ThemeWidget *base, const char *name );
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2017-01-01 12:08:49 -05:00
|
|
|
/**
|
|
|
|
* @param widget The widget handle.
|
|
|
|
*
|
|
|
|
* Print out the widget to the commandline.
|
|
|
|
*/
|
|
|
|
void rofi_theme_print ( ThemeWidget *widget );
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2017-01-01 12:08:49 -05:00
|
|
|
/**
|
|
|
|
* @param type The type of the property to create.
|
|
|
|
*
|
|
|
|
* Create a theme property of type.
|
|
|
|
*
|
|
|
|
* @returns a new property.
|
|
|
|
*/
|
2016-12-09 13:49:49 -05:00
|
|
|
Property *rofi_theme_property_create ( PropertyType type );
|
2017-01-01 12:08:49 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @param p The property to free.
|
|
|
|
*
|
|
|
|
* Free the content of the property.
|
|
|
|
*/
|
2016-12-09 13:49:49 -05:00
|
|
|
void rofi_theme_property_free ( Property *p );
|
2017-01-01 12:08:49 -05:00
|
|
|
|
|
|
|
/**
|
2017-04-23 09:17:15 -04:00
|
|
|
* @param widget
|
2017-01-01 12:08:49 -05:00
|
|
|
*
|
|
|
|
* Free the widget and alll children.
|
|
|
|
*/
|
2017-04-23 09:17:15 -04:00
|
|
|
void rofi_theme_free ( ThemeWidget *widget );
|
2017-01-01 12:08:49 -05:00
|
|
|
|
|
|
|
/**
|
2017-01-04 16:27:27 -05:00
|
|
|
* @param file filename to parse.
|
2017-01-01 12:08:49 -05:00
|
|
|
*
|
|
|
|
* Parse the input theme file.
|
2017-01-08 10:09:24 -05:00
|
|
|
*
|
|
|
|
* @returns returns TRUE when error.
|
|
|
|
*/
|
|
|
|
gboolean rofi_theme_parse_file ( const char *file );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param string to parse.
|
|
|
|
*
|
|
|
|
* Parse the input string in addition to theme file.
|
|
|
|
*
|
|
|
|
* @returns returns TRUE when error.
|
2017-01-01 12:08:49 -05:00
|
|
|
*/
|
2017-01-08 10:34:50 -05:00
|
|
|
gboolean rofi_theme_parse_string ( const char *string );
|
2017-01-01 12:08:49 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @param widget The widget handle.
|
|
|
|
* @param table HashTable containing properties set.
|
|
|
|
*
|
|
|
|
* Merge properties with widgets current property.
|
|
|
|
*/
|
|
|
|
void rofi_theme_widget_add_properties ( ThemeWidget *widget, GHashTable *table );
|
2016-12-09 16:16:31 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Public API
|
|
|
|
*/
|
|
|
|
|
2017-01-01 12:08:49 -05:00
|
|
|
/**
|
2017-01-04 16:27:27 -05:00
|
|
|
* @param widget The widget to query
|
2017-01-01 12:08:49 -05:00
|
|
|
* @param property The property to query.
|
|
|
|
* @param def The default value.
|
|
|
|
*
|
|
|
|
* Obtain the distance of the widget.
|
|
|
|
*
|
2017-01-04 16:27:27 -05:00
|
|
|
* @returns The distance value of this property for this widget.
|
2017-01-01 12:08:49 -05:00
|
|
|
*/
|
2017-06-02 10:25:47 -04:00
|
|
|
RofiDistance rofi_theme_get_distance ( const widget *widget, const char *property, int def );
|
2017-05-24 02:50:45 -04:00
|
|
|
/**
|
|
|
|
* @param widget The widget to query
|
|
|
|
* @param property The property to query.
|
|
|
|
* @param def The default value.
|
|
|
|
*
|
|
|
|
* Obtain the distance of the widget.
|
|
|
|
*
|
|
|
|
* @returns The distance value of this property for this widget.
|
|
|
|
*/
|
2017-06-02 10:25:47 -04:00
|
|
|
RofiDistance rofi_theme_get_distance_exact ( const widget *widget, const char *property, int def );
|
2017-01-01 12:08:49 -05:00
|
|
|
|
|
|
|
/**
|
2017-01-04 16:27:27 -05:00
|
|
|
* @param widget The widget to query
|
2017-01-01 12:08:49 -05:00
|
|
|
* @param property The property to query.
|
|
|
|
* @param def The default value.
|
|
|
|
*
|
|
|
|
* Obtain the integer of the widget.
|
|
|
|
*
|
2017-01-04 16:27:27 -05:00
|
|
|
* @returns The integer value of this property for this widget.
|
2017-01-01 12:08:49 -05:00
|
|
|
*/
|
2017-01-08 15:36:06 -05:00
|
|
|
int rofi_theme_get_integer ( const widget *widget, const char *property, int def );
|
2017-01-06 13:04:25 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @param widget The widget to query
|
|
|
|
* @param property The property to query.
|
|
|
|
* @param def The default value.
|
|
|
|
*
|
|
|
|
* Obtain the position of the widget.
|
|
|
|
*
|
|
|
|
* @returns The position value of this property for this widget.
|
|
|
|
*/
|
|
|
|
int rofi_theme_get_position ( const widget *widget, const char *property, int def );
|
|
|
|
|
2017-01-06 10:41:23 -05:00
|
|
|
/**
|
|
|
|
* @param widget The widget to query
|
|
|
|
* @param property The property to query.
|
|
|
|
* @param def The default value.
|
|
|
|
*
|
|
|
|
* Obtain the integer of the widget.
|
|
|
|
*
|
|
|
|
* @returns The integer value of this property for this widget.
|
|
|
|
*/
|
|
|
|
int rofi_theme_get_integer_exact ( const widget *widget, const char *property, int def );
|
2017-01-01 12:08:49 -05:00
|
|
|
|
|
|
|
/**
|
2017-01-04 16:27:27 -05:00
|
|
|
* @param widget The widget to query
|
2017-01-01 12:08:49 -05:00
|
|
|
* @param property The property to query.
|
|
|
|
* @param def The default value.
|
|
|
|
*
|
|
|
|
* Obtain the boolean of the widget.
|
|
|
|
*
|
2017-01-04 16:27:27 -05:00
|
|
|
* @returns The boolean value of this property for this widget.
|
2017-01-01 12:08:49 -05:00
|
|
|
*/
|
2017-01-08 15:36:06 -05:00
|
|
|
int rofi_theme_get_boolean ( const widget *widget, const char *property, int def );
|
2017-01-01 12:08:49 -05:00
|
|
|
|
2017-06-02 08:05:19 -04:00
|
|
|
/**
|
|
|
|
* @param widget The widget to query
|
|
|
|
* @param property The property to query.
|
|
|
|
* @param def The default value.
|
|
|
|
*
|
|
|
|
* Obtain the orientation indicated by %property of the widget.
|
|
|
|
*
|
|
|
|
* @returns The orientation of this property for this widget or %def not found.
|
|
|
|
*/
|
2017-06-02 10:34:52 -04:00
|
|
|
RofiOrientation rofi_theme_get_orientation ( const widget *widget, const char *property, RofiOrientation def );
|
2017-01-01 12:08:49 -05:00
|
|
|
/**
|
2017-01-04 16:27:27 -05:00
|
|
|
* @param widget The widget to query
|
2017-01-01 12:08:49 -05:00
|
|
|
* @param property The property to query.
|
|
|
|
* @param def The default value.
|
|
|
|
*
|
|
|
|
* Obtain the string of the widget.
|
|
|
|
*
|
2017-01-04 16:27:27 -05:00
|
|
|
* @returns The string value of this property for this widget.
|
2017-01-01 12:08:49 -05:00
|
|
|
*/
|
2017-04-26 17:24:14 -04:00
|
|
|
const char *rofi_theme_get_string ( const widget *widget, const char *property, char *def );
|
2017-01-01 12:08:49 -05:00
|
|
|
|
|
|
|
/**
|
2017-01-04 16:27:27 -05:00
|
|
|
* @param widget The widget to query
|
2017-01-01 12:08:49 -05:00
|
|
|
* @param property The property to query.
|
|
|
|
* @param def The default value.
|
|
|
|
*
|
2017-05-24 02:50:45 -04:00
|
|
|
* Obtain the double of the widget.
|
2017-01-01 12:08:49 -05:00
|
|
|
*
|
2017-01-04 16:27:27 -05:00
|
|
|
* @returns The double value of this property for this widget.
|
2017-01-01 12:08:49 -05:00
|
|
|
*/
|
2017-01-08 15:36:06 -05:00
|
|
|
double rofi_theme_get_double ( const widget *widget, const char *property, double def );
|
2017-01-01 12:08:49 -05:00
|
|
|
|
|
|
|
/**
|
2017-01-04 16:27:27 -05:00
|
|
|
* @param widget The widget to query
|
2017-01-01 12:08:49 -05:00
|
|
|
* @param property The property to query.
|
2017-01-04 16:27:27 -05:00
|
|
|
* @param d The drawable to apply color.
|
2017-01-01 12:08:49 -05:00
|
|
|
*
|
2017-01-01 12:40:49 -05:00
|
|
|
* Obtain the color of the widget and applies this to the drawable d.
|
2017-01-01 12:08:49 -05:00
|
|
|
*
|
|
|
|
*/
|
2017-01-08 15:36:06 -05:00
|
|
|
void rofi_theme_get_color ( const widget *widget, const char *property, cairo_t *d );
|
2017-01-01 12:08:49 -05:00
|
|
|
|
|
|
|
/**
|
2017-01-04 16:27:27 -05:00
|
|
|
* @param widget The widget to query
|
2017-01-01 12:08:49 -05:00
|
|
|
* @param property The property to query.
|
2017-01-01 12:40:49 -05:00
|
|
|
* @param pad The default value.
|
2017-01-01 12:08:49 -05:00
|
|
|
*
|
|
|
|
* Obtain the padding of the widget.
|
|
|
|
*
|
2017-01-04 16:27:27 -05:00
|
|
|
* @returns The padding of this property for this widget.
|
2017-01-01 12:08:49 -05:00
|
|
|
*/
|
2017-06-02 10:44:16 -04:00
|
|
|
RofiPadding rofi_theme_get_padding ( const widget *widget, const char *property, RofiPadding pad );
|
2016-12-31 17:27:17 -05:00
|
|
|
|
2017-01-08 18:09:02 -05:00
|
|
|
/**
|
|
|
|
* @param widget The widget to query
|
|
|
|
* @param property The property to query.
|
|
|
|
* @param th The default value.
|
|
|
|
*
|
|
|
|
* Obtain the highlight .
|
|
|
|
*
|
|
|
|
* @returns The highlight of this property for this widget.
|
|
|
|
*/
|
2017-06-02 10:46:28 -04:00
|
|
|
RofiHighlightColorStyle rofi_theme_get_highlight ( widget *widget, const char *property, RofiHighlightColorStyle th );
|
2017-01-08 18:09:02 -05:00
|
|
|
|
2017-01-01 12:08:49 -05:00
|
|
|
/**
|
|
|
|
* @param d The distance handle.
|
2017-01-03 13:23:09 -05:00
|
|
|
* @param ori The orientation.
|
2017-01-01 12:08:49 -05:00
|
|
|
*
|
2017-06-02 10:25:47 -04:00
|
|
|
* Convert RofiDistance into pixels.
|
2017-01-01 12:08:49 -05:00
|
|
|
* @returns the number of pixels this distance represents.
|
|
|
|
*/
|
2017-06-02 10:34:52 -04:00
|
|
|
int distance_get_pixel ( RofiDistance d, RofiOrientation ori );
|
2017-01-04 16:27:27 -05:00
|
|
|
/**
|
|
|
|
* @param d The distance handle.
|
|
|
|
* @param draw The cairo drawable.
|
|
|
|
*
|
|
|
|
* Set linestyle.
|
|
|
|
*/
|
2017-06-02 10:25:47 -04:00
|
|
|
void distance_get_linestyle ( RofiDistance d, cairo_t *draw );
|
2017-01-01 12:08:49 -05:00
|
|
|
|
2017-03-10 17:39:29 -05:00
|
|
|
/**
|
|
|
|
* Low-level functions.
|
|
|
|
* These can be used by non-widgets to obtain values.
|
|
|
|
*/
|
|
|
|
/**
|
|
|
|
* @param name The name of the element to find.
|
|
|
|
* @param state The state of the element.
|
|
|
|
* @param exact If the match should be exact, or parent can be included.
|
|
|
|
*
|
|
|
|
* Find the theme element. If not exact, the closest specified element is returned.
|
|
|
|
*
|
|
|
|
* @returns the ThemeWidget if found, otherwise NULL.
|
|
|
|
*/
|
|
|
|
ThemeWidget *rofi_theme_find_widget ( const char *name, const char *state, gboolean exact );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param widget The widget to find the property on.
|
|
|
|
* @param type The %PropertyType to find.
|
|
|
|
* @param property The property to find.
|
|
|
|
* @param exact If the property should only be found on this widget, or on parents if not found.
|
|
|
|
*
|
|
|
|
* Find the property on the widget. If not exact, the parents are searched recursively until match is found.
|
|
|
|
*
|
|
|
|
* @returns the Property if found, otherwise NULL.
|
|
|
|
*/
|
|
|
|
Property *rofi_theme_find_property ( ThemeWidget *widget, PropertyType type, const char *property, gboolean exact );
|
|
|
|
|
2017-05-25 17:41:15 -04:00
|
|
|
GList *rofi_theme_get_list ( const widget *widget, const char * property, const char *defaults);
|
2017-03-11 11:06:06 -05:00
|
|
|
/**
|
|
|
|
* Checks if a theme is set, or is empty.
|
|
|
|
* @returns TRUE when empty.
|
|
|
|
*/
|
|
|
|
gboolean rofi_theme_is_empty ( void );
|
2017-04-02 06:32:11 -04:00
|
|
|
|
2017-04-03 06:04:07 -04:00
|
|
|
#ifdef THEME_CONVERTER
|
2017-04-02 06:32:11 -04:00
|
|
|
/**
|
|
|
|
* Convert old theme colors into default one.
|
|
|
|
*/
|
|
|
|
void rofi_theme_convert_old ( void );
|
2017-05-04 01:56:40 -04:00
|
|
|
#endif
|
2017-04-17 11:46:01 -04:00
|
|
|
|
|
|
|
/**
|
2017-04-23 09:17:15 -04:00
|
|
|
* @param file File name passed to option.
|
2017-04-17 11:46:01 -04:00
|
|
|
*
|
|
|
|
* @returns path to theme or copy of filename if not found.
|
|
|
|
*/
|
2017-04-23 09:17:15 -04:00
|
|
|
char *helper_get_theme_path ( const char *file );
|
2017-01-01 12:08:49 -05:00
|
|
|
#endif
|