
    ?g                     ~    d dl mZ d dlmZ d dl dZ G d d      Z G d dej                        Z	 G d	 d
e
      Zy)    )SidePage)util)*z*org.cinnamon.settings-daemon.plugins.colorc                   6    e Zd ZdZ ed      ZdZd Zd Zd Z	y)Module
nightlightzReduce exposure to blue lightprefsc                 Z    t        d      }t        t        d      d|||       }|| _        y )Nz1redshift, color, blue, light, filter, temperaturezNight Lightzcs-nightlight)module)_r   sidePage)selfcontent_boxkeywordsr   s       >/usr/share/cinnamon/cinnamon-settings/modules/cs_nightlight.py__init__zModule.__init__   s,    HIAm,ox]ab     c                     | j                   sqt        d       t               }| j                  j	                  |       |j                         }t        t        d      t        d      }|j                  t        d             |j                  |       d}t        t        d      t        dddd	d
ddd
      }|j                  |       |j                  j                  d       |j                  j                  dt        j                   j"                  d        |j                  j%                         }|j'                  d       t        j)                         }|j+                  |j-                  d             |j/                  |t        j0                         |j                  t3        t        d      | j4                               |j                         }t        j6                  j9                  t        j:                  j<                        }dt        d      gdt        d      gf}	t?        t        d      t        d|	|      }
|j                  |
       d|_         |jC                  tE        |      t        ddg       y y )NzLoading Night Light modulezEnable night lightznight-light-enabledzThis feature makes the screen color warmer in the evening and during the night. By reducing blue light, it can prevent eye strain, headaches and improve sleep quality.aK  
@define-color ORANGE_100 #ffc27d;
@define-color ORANGE_500 #f37329;
@define-color base_color white;
@define-color bg_color shade (@base_color, 0.96);

.night-light-temperature trough {
    padding-top: 2px;
    padding-bottom: 2px;
    background-image: linear-gradient(to right, mix(@bg_color, @ORANGE_100, 0.5), @ORANGE_500);
}
zColor temperatureznight-light-temperature i  i\  d   TF)minimaxistepinvert
show_valuei
  zutf-8zClick to previewauto	AutomaticmanualzSpecify start and end timesScheduleznight-light-schedule-mode)
size_group)values)#loadedprintSettingsPager   
add_widgetadd_sectionGSettingsSwitchr   COLOR_SCHEMAset_tooltip_textadd_rowGSettingsRangecontent_widgetset_has_originadd_markGtkPositionTypeTOPget_style_context	add_classCssProviderload_from_dataencodeadd_provider#STYLE_PROVIDER_PRIORITY_APPLICATIONButtonpreview_night_light	SizeGroupnewSizeGroupMode
HORIZONTALGSettingsComboBoxneed_separatoradd_reveal_rowScheduleWidget)r   pagesectionswitch	range_css
temp_rangecontextproviderr    optionswidgets              r   on_module_selectedzModule.on_module_selected   s   {{./>DMM$$T*&&(G$Q';%<lLabF##A  'P  %Q  ROOF#I (*=(>Ngikmo-13t`egJOOJ'%%44U;%%..tS5E5E5I5I4P //AACG78(H##I$4$4W$=>  3+R+RSOOF1%7#8$:R:RST&&(G**3+<+<+G+GHJq~.1=Z;[0\\G&q}lD_ahu  AFOOF#%*G""">*#=|Mhrzq{"|[ r   c           	          t         j                  j                  t         j                  t         j                  j
                  d       t         j                  j                  d dddd       }|j                  dd       y )Nz!org.cinnamon.SettingsDaemon.Colorz"/org/cinnamon/SettingsDaemon/Colorz(u)
   )	Gio	DBusProxynew_syncbus_get_syncBusTypeSESSIONDBusProxyFlagsNONENightLightPreview)r   buttonproxys      r   r:   zModule.preview_night_lightC   s`    &&S[[00$7##/0/ 	r*r   N)
__name__
__module____qualname__namer   commentcategoryr   rL   r:    r   r   r   r   	   s(    D/0GH!
.}`
+r   r   c                   2     e Zd Z fdZddZd Zd Z xZS )TimeSpinButtonc                    t        t        | 
  |i | | j                  d       | j	                  d       d| j
                  _        t        j                  j                  | j
                  _
        t        j                  d      }|j                  d      rdnd| _        | j                  d	| j                         | _        y )
NT   rN   zorg.cinnamon.desktop.interface	schema_idzclock-use-24hz%Rz%I:%M %poutput)superrb   r   set_wrap
set_digitspropswidth_charsr/   SpinButtonUpdatePolicyIF_VALIDupdate_policyrO   Settingsget_booleanlocale_formatconnectvalue_to_labelformatter_handle)r   argskwargsinterface_settings	__class__s       r   r   zTimeSpinButton.__init__Q   s    nd,d=f=d!#

!$!;!;!D!D

  \\4T\U%7%C%CO%TTZd $Xt7J7J Kr   c                    | j                         }|j                         }| j                  |      \  }}t        j                  j                  ddd||d      }| j                  |j                  | j                               y)Ni     r   T)	get_adjustment	get_valuefrac_to_h_mGLibDateTime	new_localset_textformatrr   )r   
spinbuttondata
adjustmentvaluehoursminutests           r   rt   zTimeSpinButton.value_to_label]   sn    ((*
$$&))%0wMM##D!QwBahht1123r   c                 B    t        |      }t        ||z
  dz        }||fS )N<   )int)r   fractionr   r   s       r   r~   zTimeSpinButton.frac_to_h_mg   s)    Hx%'2-.g~r   c                 B    | j                         }|j                         S N)r|   r}   )r   r   s     r   get_time_fractionz TimeSpinButton.get_time_fractionl   s    ((*
##%%r   r   )rZ   r[   r\   r   rt   r~   r   __classcell__ry   s   @r   rb   rb   P   s    
L
&r   rb   c                   *     e Zd Z fdZd Zd Z xZS )rB   c                    t         t        |           t        j	                  t
              | _        t        j                  t        j                  j                  d      | _        | j                  | j                  ddd       |j                  | j                         | j                  j                  d      }| j                  j                  d      }t        j                  |ddd	
      }t!        |t        j                  j"                        | _        |j'                  d| j(                  | j$                         | j                  j+                  | j$                  ddd       t        j-                  t/        d            }| j                  j+                  |ddd       t        j                  |ddd	
      }t!        |t        j                  j"                        | _        |j'                  d| j2                  | j0                         | j                  j+                  | j0                  ddd       | j5                          y )Nre   rd   )orientationspacingFr   night-light-schedule-fromnight-light-schedule-tog     7@g      ?)r   lowerupperstep_increment)r   r   zvalue-changedTto)label   )rh   rB   r   rO   rp   r(   color_settingsr/   BoxOrientationr>   r,   pack_endr%   
get_double
Adjustmentrb   VERTICALstart_hrrs   from_spinner_values_changed
pack_startLabelr   end_hrto_spinner_values_changedshow_all)r   r    
start_fracend_fracadjustr   ry   s         r   r   zScheduleWidget.__init__q   s   nd,.!ll\lB!gg#//2L2LVWgXd))5%;d112((334OP
&&112KLjWZ[&&cooF^F^_(H(H$--X&&t}}dD!D		$	(&&ueUA>hauUXY$COOD\D\](F(FT&&t{{D$Br   c                 X    | j                   j                  d|j                                y )Nr   r   
set_doubler   r   r   spinners      r   r   z*ScheduleWidget.from_spinner_values_changed   s"    &&'BGD]D]D_`r   c                 X    | j                   j                  d|j                                y )Nr   r   r   s      r   r   z(ScheduleWidget.to_spinner_values_changed   s"    &&'@'B[B[B]^r   )rZ   r[   r\   r   r   r   r   r   s   @r   rB   rB   p   s    8a_r   rB   N)SettingsWidgetsr   binr   xapp.GSettingsWidgetsr(   r   r/   
SpinButtonrb   SettingsWidgetrB   r`   r   r   <module>r      sA    %  #;D+ D+N&S^^ &@!_^ !_r   