/*
 * Custom styling for GPS.
 */

/* You can override the default theme colors. Most gtk+ themes are
 * carefully setup so that they do not hard-code colors, but use a number
 * of predefined named colors and shades of them. For instance:
 */
/*
   @define-color base_color black;
   @define-color bg_color #fff;
   @define-color theme_bg_color green;
*/

@define-color theme_base_color @editor_bg_color;

@define-color inactive_items_selected_color mix(@theme_selected_bg_color, @theme_selected_fg_color, 0.7);

@define-color tooltip-text-color @editor_fg_color;

@define-color error-color mix(@theme_base_color, red, 0.5);
@define-color warning-color mix(@theme_base_color, darkorange, 0.9);

@define-color entry_color_two @editor_bg_color;

@define-color button_bg_color @editor_bg_color;

@define-color gutter_color mix(@editor_fg_color, @editor_bg_color, 0.6);


/*********************
 * General
 *********************/

* {
   -gtk-icon-shadow: none;
   text-shadow: none;
}

*:disabled {
   color: @inactive_items_color;
}

.view, .dialog-views, menu,
column-header button, list, flowbox {
   background-color: @theme_base_color;
}

undershoot, overshoot {
   background-image: none;
}

frame > border {
   border: none;
}

/**********************************
 * Selection
 **********************************/

*:selected, textview.view selection, textview.view.editor selection,
row.button:selected {
   background-color: @theme_selected_bg_color;
   color: @theme_selected_fg_color;
}

/*********************
 * Buttons and Combos
 *********************/

button, combobox button.combo
{
   background-image: -gtk-gradient (linear,
                                   0 0, 0 0.5,
                                   from(@button_bg_color_two),
                                   to(@button_bg_color_one));
   border-color: @popup_border_color;
}

checkbutton check, radiobutton radio {
   background-color: @mdi_border_color;
   background-image: none;
   color: @theme_fg_color;
}

/***********************
 * Flat Buttons        *
 ***********************/

button.flat, button.flat:hover {
   background: transparent;
   border-color: transparent;
   box-shadow: none;
}

button.flat:active, button.flat:checked {
   background-image: -gtk-gradient (linear,
                                   0 0, 0 0.5,
                                   from(@active_button_bg_color_one),
                                   to(@active_button_bg_color_two));
   border-color: @popup_border_color;
}

/***********************
 * Text Buttons        *
 ***********************/

button.text-button:active, button.text-button:checked {
   background-image: -gtk-gradient (linear,
                                   0 0, 0 0.5,
                                   from(@active_button_bg_color_one),
                                   to(@active_button_bg_color_two));
   border-color: @popup_border_color;
}

button.suggested-action {
   background-image: none;
   background-color: @theme_selected_bg_color;
}

/***********************
 * Link Buttons        *
 ***********************/

button.link.flat {
   /* remove the default padding and margins of all link buttons */
   padding: 0pt;
   border: 0pt;
   margin: 0pt;
}

button.link.flat:hover, button.link.flat:hover label {
   color: @theme_selected_bg_color;
   background: transparent;
}

/*********************
 * Entries
 *********************/

entry, .entry.multiline{
   background-image: -gtk-gradient (linear,
                                   0 0, 0 0.5,
                                   from(@entry_color_one),
                                   to(@entry_color_two));
   border-color: @popup_border_color;
}

/***************************
 * Toolbars and Button Boxes
 ***************************/

#toolbar-box, toolbar {
   background: @notebook_background;
}

toolbar {
   margin: 0pt;
   padding: 0pt;
}

toolbar button {
   padding: 0pt;
   margin: 0;
}

.gps-local-toolbar {
   background: @theme_base_color;
}

/***************
 * Info Popups
 ***************/

.gps-info-popup label {
   font-size: larger;
}

/*************
 * Menus   *
 *************/

menubar {
   background-color: @notebook_background;
   box-shadow: none;
}

menu menuitem:hover {
   background: @theme_selected_bg_color;
   color: @theme_selected_fg_color;
}

menuitem * {
   box-shadow: none;
}

menu {
   border: solid 1pt mix(@theme_base_color, @mdi_border_color, 0.5);
}

/*********************
 * Progress Bars
 *********************/

progressbar trough  {
   min-height: 3pt;
   background-color: @theme_base_color;
}

progressbar progress  {
   min-height: 3pt;
   background-color: @theme_selected_bg_color;
}

.mdichild progressbar trough {
   min-height: 2pt;
   background-color: @theme_base_color;
   background-image: none;
   border: none;
}

.mdichild progressbar progress.pulse {
   background-color: @theme_selected_bg_color;
   background-image: none;
}

/****************************
 * Separators and Panew views
 ****************************/

separator, .pane-separator {
  /* Change the color of the separators to make them more visible in
     dark themes */
  background-color: @mdi_border_color;
  background-image: none;
}

paned separator {
  margin: 0pt;
  padding: 0pt;
  min-width: 2pt;
  min-height: 2pt;
}

paned > frame > scrolledwindow > viewport > * {
   /* Add small padding to scrolled windows embedded in paned views */
   padding: 4pt;
}

/**********************
 * Scrollbars
 **********************/

.overlay-indicator {
   opacity: 0.58;
}

.overlay-indicator:hover {
   opacity: 0.75;
}

scrollbar {
   border: none;
   min-width: 8pt;
   min-height: 8pt;
   background-color: @theme_base_color;
}

scrollbar slider {
   border: none;
   background-color: @scrollbar_slider_color;
   min-width: 8pt;
   min-height: 8pt;
}

/***************************
 * Dialogs and Assistants  *
 ***************************/

dialog > GtkBox, assistant, assistant > box {
   background-color: @theme_base_color;
}

assistant paned label {
   margin: 10pt;
}

assistant paned separator {
   padding: 0pt;
   margin: 0pt;
   min-width: 0pt;
}

dialog, window {
   background-color: @theme_base_color;
}

.dialog-action-box, dialog buttonbox {
   background-color: @notebook_background;
 }

.dialog-action-area image {
   -gtk-icon-theme: "";
}

/**************************
 * GS dialog view groups *
 **************************/

.dialog-views-groups > label {
   /* Set bold font for group titles */
   font-weight: bold;
   padding-top: 8pt;
   padding-bottom: 2pt;
   padding-left: 6pt;
}

.dialog-views-groups-rows {
   padding-left: 10pt;
   padding-right: 10pt;
}

.dialog-views-doc-labels {
   /* Reduce the font size for the inlined preferences documentation */
   font-size: smaller;
   color: @inactive_items_color;
}

.dialog-views-groups-rows.display_error, GtkInfoBar.display_error {
   background-color: @error-color;
}

toolitem.display_error entry {
  border-color: red;
}

.dialog-views-button-boxes {
   background-color: transparent;
   min-width: 0pt;
   padding: 0pt;
   margin: 0;
}

/*********************
 * Welcome Dialog
 *********************/

.gps-welcome-dialog-logo-area {
   box-shadow: none;
   border-width: 0;
   padding-top: 10pt;
   padding-left: 10pt;
   padding-right: 10pt;
   padding-bottom: 10pt;
}

.gps-welcome-dialog infobar box {
   background-color: transparent;
   border: none;
}

.gps-welcome-dialog row button {
   color: @inactive_items_color;
}

.gps-welcome-dialog row:hover button {
   color: @editor_fg_color;
}

.gps-welcome-dialog-project-label {
   color: @editor_fg_color;
}

.gps-welcome-dialog row:selected label {
   color: @theme_selected_fg_color;
}

.gps-welcome-dialog-version {
   font-weight: 100;
   font-style: italic;
   font-size: 1.1em;
   color: @inactive_items_color;
}

/***************************************
 * Learn View
 ***************************************/

.learn-provider-labels {
   font-weight: bold;
}

.learn-groups flowboxchild {
   background-color: @learn-items-color;
   padding-left: 10pt;
   border-radius: 2pt;
}

.learn-groups > label {
   font-weight: normal;
   color: @inactive_items_color;
   padding-top: 10pt;
   padding-bottom: 10pt;
}

.learn-groups flowboxchild:selected {
   background-color: @theme_selected_bg_color;
   color: @theme_selected_fg_color;
}

/********************
 * Bug Report Dialog
 ********************/

#gps-bug-report-dialog > box > * {
  padding-left: 4pt;
}

.gps-bug-report-section-desc {
  font-weight: bold;
  padding-top: 10pt;
  padding-bottom: 10pt;
}

#gps-bug-report-dialog .dialog-views-doc-labels {
  padding-top: 2pt;
  padding-bottom: 6pt;
}

/***************************************
 * Tooltips, Completion, Signature Help
 ***************************************/

.tooltip label {
    padding: 8pt;
    color: @theme_fg_color;
 }

tooltip label {
    padding: 2pt;
    color: @theme_fg_color;
 }

.tooltip.highlighted {
  border: 1px solid @theme_selected_bg_color;
}

.completion > *,  #signature-help-window > *, .completion.notes > frame,
.tooltip, tooltip, #entity-proposals-menu > box {
   border: 1pt solid @popup_border_color;
   background-color: @tooltip-background-color;
   border-radius: 0pt;
}

.completion.notes frame box {
   padding: 4pt;
}

.completion.notes textview.view text {
   background-color: @tooltip-background-color;
}

.completion.search > frame > border {
   border: solid 1pt @popup_border_color;
}

.completion.search .help-label {
   font-size: 2em;
}

.completion.search frame {
   background-color: @theme_base_color;
   box-shadow: none;
   border-width: 0;
}

#signature-help-window .dialog-views label {
   padding: 3pt;
}

/**********************************
 * Entity Proposals Menu
 **********************************/

#entity-proposals-menu .notes {
   background-color: @theme_base_color;
}

#entity-proposals-menu .notes label {
   padding: 8pt;
}

/*************
 * GUI Utils *
 *************/

.warning-label {
   color: @warning-color;
   font-style: italic;
}

.help-label {
   color: @inactive_items_color;
   font-size: 150%;
}

/*********************
 * MDI Notebooks
 *********************/

notebook.mdi {
   background-color: @notebook_background;
}

notebook.mdi stack {
   background-color: @theme_base_color;
}

/***********************
 * MDI Notebook headers
 ***********************/

notebook.mdi header {
   border: 1pt solid @notebook_background;
   box-shadow: none;
   background-color: transparent;
}

/*********************
 * MDI Notebook tabs
 *********************/

notebook.mdi header tab {
   padding: 2pt;
   margin: 0pt;
   background: transparent;
   color: @inactive_items_color;
   box-shadow: none;
}

notebook.mdi header tab * {
   padding: 2pt;
}

notebook.mdi header .mdi-highlighted-tab {
   color: @theme_selected_bg_color;
}

notebook.mdi header .not-from-project {
   font-style: italic;
}

notebook.mdi header tab:checked {
   border-color: @notebook_background;
   color: @theme_fg_color;
}

notebook.mdi header.top tab {
   border-top: 2pt solid @notebook_background;
}

notebook.mdi header.left tab {
   border-left: 2pt solid @notebook_background;
}

notebook.mdi header.right tab {
   border-right: 2pt solid @notebook_background;
}

.notebook.mdi header.bottom tab {
   border-bottom: 2pt solid @notebook_background;
}

/***************************
 * MDI Notebook focused tabs
 ***************************/

notebook.mdifocused header tab:checked {
   background-color: @theme_base_color;
}

notebook.mdifocused header.top tab:checked {
   border-top: 2pt solid @theme_selected_bg_color;
}

notebook.mdifocused header.left tab:checked {
   border-left: 2pt solid @theme_selected_bg_color;
}

notebook.mdifocused header.right tab:checked {
   border-right: 2pt solid @theme_selected_bg_color;
}

notebook.mdifocused header.bottom tab {
   border-bottom: 2pt solid @theme_selected_bg_color;
}

/**********************************
 * Editors and Text Views
 **********************************/

textview.view text {
   background-color: @editor_bg_color;
   color: @editor_fg_color;
}

textview.view.readonly text {
  background-color: @readonly_color;
}

.gps_gutter {
   color: @gutter_color;
}

.gps-editor-status-bar button {
   padding: 0pt 2pt;
}

.gps-editor-status-bar > * {
   margin: 0pt;
   padding: 0pt;
}

.gps-editor-status-bar {
   background-color: @notebook_background;
}

/**********************************
 * GNAThub Report
 **********************************/

#gnathub-report-tree {
   padding-left: 10px;
}

/**********************************
 * Refactoring input window
 **********************************/

.gnatstudio-refactor-input {
   border: 1pt solid @popup_border_color;
}

.gnatstudio-refactor-input box {
   padding: 4pt;
}

/**********************************
 * Multiline Entry
 **********************************/

.entry.multiline {
   border: 1pt solid @popup_border_color;
}


/**********************************
 * Demos
 **********************************/

 .gps-demo-menu-highlighted {
   background-color: @theme_selected_bg_color;
   color: @theme_selected_fg_color;
 }