diff --git a/rtdata/images/Dark/actions/expanderClosed.png b/rtdata/images/Dark/actions/expanderClosed.png new file mode 100644 index 000000000..0df54f055 Binary files /dev/null and b/rtdata/images/Dark/actions/expanderClosed.png differ diff --git a/rtdata/images/Dark/actions/expanderDisabled.png b/rtdata/images/Dark/actions/expanderDisabled.png new file mode 100644 index 000000000..228902030 Binary files /dev/null and b/rtdata/images/Dark/actions/expanderDisabled.png differ diff --git a/rtdata/images/Dark/actions/expanderEnabled.png b/rtdata/images/Dark/actions/expanderEnabled.png new file mode 100644 index 000000000..8e9ff1a81 Binary files /dev/null and b/rtdata/images/Dark/actions/expanderEnabled.png differ diff --git a/rtdata/images/Dark/actions/expanderInconsistent.png b/rtdata/images/Dark/actions/expanderInconsistent.png new file mode 100644 index 000000000..af7e889cb Binary files /dev/null and b/rtdata/images/Dark/actions/expanderInconsistent.png differ diff --git a/rtdata/images/Dark/actions/expanderOpened.png b/rtdata/images/Dark/actions/expanderOpened.png new file mode 100644 index 000000000..b06c69f0e Binary files /dev/null and b/rtdata/images/Dark/actions/expanderOpened.png differ diff --git a/rtdata/images/Light/actions/expanderClosed.png b/rtdata/images/Light/actions/expanderClosed.png new file mode 100644 index 000000000..c436748b6 Binary files /dev/null and b/rtdata/images/Light/actions/expanderClosed.png differ diff --git a/rtdata/images/Light/actions/expanderDisabled.png b/rtdata/images/Light/actions/expanderDisabled.png new file mode 100644 index 000000000..ad974a6d5 Binary files /dev/null and b/rtdata/images/Light/actions/expanderDisabled.png differ diff --git a/rtdata/images/Light/actions/expanderEnabled.png b/rtdata/images/Light/actions/expanderEnabled.png new file mode 100644 index 000000000..db02844f7 Binary files /dev/null and b/rtdata/images/Light/actions/expanderEnabled.png differ diff --git a/rtdata/images/Light/actions/expanderInconsistent.png b/rtdata/images/Light/actions/expanderInconsistent.png new file mode 100644 index 000000000..46092d748 Binary files /dev/null and b/rtdata/images/Light/actions/expanderInconsistent.png differ diff --git a/rtdata/images/Light/actions/expanderOpened.png b/rtdata/images/Light/actions/expanderOpened.png new file mode 100644 index 000000000..4f690bc86 Binary files /dev/null and b/rtdata/images/Light/actions/expanderOpened.png differ diff --git a/rtdata/themes/09-Gray-Orange.gtkrc b/rtdata/themes/09-Gray-Orange.gtkrc index c6f4c14d6..56a67711b 100644 --- a/rtdata/themes/09-Gray-Orange.gtkrc +++ b/rtdata/themes/09-Gray-Orange.gtkrc @@ -255,7 +255,7 @@ style "clearlooks-frame" { bg[INSENSITIVE] = mix(0.60, @rt_tool_bg, @rt_tool_border) } -style "clearlooks-toolFrame" { +style "clearlooks-toolFrame" = "clearlooks-toolContainer" { bg[NORMAL] = @rt_tool_bg fg[NORMAL] = @rt_tool_border @@ -330,25 +330,19 @@ style "clearlooks-expander" { xthickness = 3 ythickness = 3 - fg[NORMAL] = @rt_salt_pinch - fg[PRELIGHT] = @rt_salt_pinch - fg[INSENSITIVE] = @rt_salt_pinch + fg[NORMAL] = "#8C8C8C" + fg[PRELIGHT] = "#B8B8B8" + fg[INSENSITIVE] = "#505050" bg[PRELIGHT] = mix(0.5, @rt_selected_bg_color, @rt_bg_color) base[NORMAL] = @rt_salt_pinch base[PRELIGHT] = @rt_salt_pinch base[INSENSITIVE] = @rt_salt_pinch - - engine "clearlooks" { - hint = "expander" - } } -style "clearlooks-expanderLabel" { - - fg[NORMAL] = shade (1.30, @rt_text_color) - fg[PRELIGHT] = @rt_selected_fg_color +style "clearlooks-subexpander" = "clearlooks-expander"{ + bg[NORMAL] = @rt_tool_bg } style "clearlooks-menubar" { @@ -489,7 +483,6 @@ class "GtkScrollbar" style "clearlooks-scrollbar" class "GtkHScrollbar" style "clearlooks-hscrollbar" class "GtkVScrollbar" style "clearlooks-vscrollbar" -class "GtkExpander" style "clearlooks-expander" class "GtkHSV" style "clearlooks-HSV" # General matching follows. The order is choosen so that the right styles override @@ -513,9 +506,6 @@ widget_class "**" style "clearlooks-statusbar" widget_class "**" style "clearlooks-combobox" widget_class "**" style "clearlooks-checkbutton" -widget_class "*." style "clearlooks-expanderLabel" -widget_class "*.." style "clearlooks-expanderLabel" - widget_class "**" style "clearlooks-menubar" widget_class "**" style "clearlooks-menu" widget_class "**" style "clearlooks-menu_item" @@ -532,17 +522,19 @@ widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" -widget_class "*..*." style "clearlooks-separator" -widget_class "*..*." style "clearlooks-toolExpanderBox" -widget_class "*.." style "clearlooks-toolFrame" -widget_class "*...*." style "clearlooks-toolExpanderBox" +widget_class "*...*." style "clearlooks-separator" +widget_class "*...*." style "clearlooks-toolExpanderBox" widget "*.partialPasteHeader.*" style "clearlooks-frame_title" widget "*.partialPasteHeaderSep" style "clearlooks-partialPasteHeaderSep" widget "*.histButton" style "clearlooks-histButton" widget "*.FramelessSpinButton" style "clearlooks-framelessspinbutton" widget "*.ThresholdSelector" style "clearlooks-thresholdselector" -widget "*.ToolPanel" style "clearlooks-toolContainer" +widget "*.MyExpanderTitle.*" style "clearlooks-expander" +widget "*.MyExpanderTitle" style "clearlooks-expander" +widget "*.ToolPanel" style "clearlooks-toolFrame" +widget "*.ToolPanel.*.MyExpanderTitle" style "clearlooks-subexpander" +widget "*.ToolPanel.*.MyExpanderTitle.*" style "clearlooks-subexpander" # The window of the tooltip is called "gtk-tooltip" ################################################################## diff --git a/rtdata/themes/17-Gray-Red.gtkrc b/rtdata/themes/17-Gray-Red.gtkrc index 7af487db2..7e8d72a2c 100644 --- a/rtdata/themes/17-Gray-Red.gtkrc +++ b/rtdata/themes/17-Gray-Red.gtkrc @@ -255,7 +255,7 @@ style "clearlooks-frame" { bg[INSENSITIVE] = mix(0.60, @rt_tool_bg, @rt_tool_border) } -style "clearlooks-toolFrame" { +style "clearlooks-toolFrame" = "clearlooks-toolContainer" { bg[NORMAL] = @rt_tool_bg fg[NORMAL] = @rt_tool_border @@ -330,25 +330,19 @@ style "clearlooks-expander" { xthickness = 3 ythickness = 3 - fg[NORMAL] = @rt_salt_pinch - fg[PRELIGHT] = @rt_salt_pinch - fg[INSENSITIVE] = @rt_salt_pinch + fg[NORMAL] = "#a0a0a0" + fg[PRELIGHT] = "#d0d0d0" + fg[INSENSITIVE] = "#808080" bg[PRELIGHT] = mix(0.75, @rt_selected_bg_color, @rt_bg_color) base[NORMAL] = @rt_salt_pinch base[PRELIGHT] = @rt_salt_pinch base[INSENSITIVE] = @rt_salt_pinch - - engine "clearlooks" { - hint = "expander" - } } -style "clearlooks-expanderLabel" { - - fg[NORMAL] = "#a0a0a0" - fg[PRELIGHT] = "#d0d0d0" +style "clearlooks-subexpander" = "clearlooks-expander"{ + bg[NORMAL] = @rt_tool_bg } style "clearlooks-menubar" { @@ -489,7 +483,6 @@ class "GtkScrollbar" style "clearlooks-scrollbar" class "GtkHScrollbar" style "clearlooks-hscrollbar" class "GtkVScrollbar" style "clearlooks-vscrollbar" -class "GtkExpander" style "clearlooks-expander" class "GtkHSV" style "clearlooks-HSV" # General matching follows. The order is choosen so that the right styles override @@ -513,9 +506,6 @@ widget_class "**" style "clearlooks-statusbar" widget_class "**" style "clearlooks-combobox" widget_class "**" style "clearlooks-checkbutton" -widget_class "*." style "clearlooks-expanderLabel" -widget_class "*.." style "clearlooks-expanderLabel" - widget_class "**" style "clearlooks-menubar" widget_class "**" style "clearlooks-menu" widget_class "**" style "clearlooks-menu_item" @@ -532,17 +522,19 @@ widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" -widget_class "*..*." style "clearlooks-separator" -widget_class "*..*." style "clearlooks-toolExpanderBox" -widget_class "*.." style "clearlooks-toolFrame" -widget_class "*...*." style "clearlooks-toolExpanderBox" +widget_class "*...*." style "clearlooks-separator" +widget_class "*...*." style "clearlooks-toolExpanderBox" widget "*.partialPasteHeader.*" style "clearlooks-frame_title" widget "*.partialPasteHeaderSep" style "clearlooks-partialPasteHeaderSep" widget "*.histButton" style "clearlooks-histButton" widget "*.FramelessSpinButton" style "clearlooks-framelessspinbutton" widget "*.ThresholdSelector" style "clearlooks-thresholdselector" -widget "*.ToolPanel" style "clearlooks-toolContainer" +widget "*.MyExpanderTitle.*" style "clearlooks-expander" +widget "*.MyExpanderTitle" style "clearlooks-expander" +widget "*.ToolPanel" style "clearlooks-toolFrame" +widget "*.ToolPanel.*.MyExpanderTitle" style "clearlooks-subexpander" +widget "*.ToolPanel.*.MyExpanderTitle.*" style "clearlooks-subexpander" # The window of the tooltip is called "gtk-tooltip" ################################################################## diff --git a/rtdata/themes/21-Gray-Gray.gtkrc b/rtdata/themes/21-Gray-Gray.gtkrc index c9a2646c8..bc3e12f02 100644 --- a/rtdata/themes/21-Gray-Gray.gtkrc +++ b/rtdata/themes/21-Gray-Gray.gtkrc @@ -255,7 +255,7 @@ style "clearlooks-frame" { bg[INSENSITIVE] = shade(0.85, @rt_bg_color) } -style "clearlooks-toolFrame" { +style "clearlooks-toolFrame" = "clearlooks-toolContainer" { bg[NORMAL] = @rt_tool_bg fg[NORMAL] = @rt_tool_border @@ -330,25 +330,19 @@ style "clearlooks-expander" { xthickness = 3 ythickness = 3 - fg[NORMAL] = @rt_salt_pinch - fg[PRELIGHT] = @rt_salt_pinch - fg[INSENSITIVE] = @rt_salt_pinch + fg[NORMAL] = "#a0a0a0" + fg[PRELIGHT] = "#d0d0d0" + fg[INSENSITIVE] = "#808080" bg[PRELIGHT] = mix(0.8, @rt_selected_bg_color, @rt_bg_color) base[NORMAL] = @rt_salt_pinch base[PRELIGHT] = @rt_salt_pinch base[INSENSITIVE] = @rt_salt_pinch - - engine "clearlooks" { - hint = "expander" - } } -style "clearlooks-expanderLabel" { - - fg[NORMAL] = shade (1.26, @rt_text_color) - fg[PRELIGHT] = shade (1.26, @rt_text_color) +style "clearlooks-subexpander" = "clearlooks-expander"{ + bg[NORMAL] = @rt_tool_bg } style "clearlooks-menubar" { @@ -489,7 +483,6 @@ class "GtkScrollbar" style "clearlooks-scrollbar" class "GtkHScrollbar" style "clearlooks-hscrollbar" class "GtkVScrollbar" style "clearlooks-vscrollbar" -class "GtkExpander" style "clearlooks-expander" class "GtkHSV" style "clearlooks-HSV" # General matching follows. The order is choosen so that the right styles override @@ -513,9 +506,6 @@ widget_class "**" style "clearlooks-statusbar" widget_class "**" style "clearlooks-combobox" widget_class "**" style "clearlooks-checkbutton" -widget_class "*." style "clearlooks-expanderLabel" -widget_class "*.." style "clearlooks-expanderLabel" - widget_class "**" style "clearlooks-menubar" widget_class "**" style "clearlooks-menu" widget_class "**" style "clearlooks-menu_item" @@ -532,17 +522,19 @@ widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" -widget_class "*..*." style "clearlooks-separator" -widget_class "*..*." style "clearlooks-toolExpanderBox" -widget_class "*.." style "clearlooks-toolFrame" -widget_class "*...*." style "clearlooks-toolExpanderBox" +widget_class "*...*." style "clearlooks-separator" +widget_class "*...*." style "clearlooks-toolExpanderBox" widget "*.partialPasteHeader.*" style "clearlooks-frame_title" widget "*.partialPasteHeaderSep" style "clearlooks-partialPasteHeaderSep" widget "*.histButton" style "clearlooks-histButton" widget "*.FramelessSpinButton" style "clearlooks-framelessspinbutton" widget "*.ThresholdSelector" style "clearlooks-thresholdselector" -widget "*.ToolPanel" style "clearlooks-toolContainer" +widget "*.MyExpanderTitle.*" style "clearlooks-expander" +widget "*.MyExpanderTitle" style "clearlooks-expander" +widget "*.ToolPanel" style "clearlooks-toolFrame" +widget "*.ToolPanel.*.MyExpanderTitle" style "clearlooks-subexpander" +widget "*.ToolPanel.*.MyExpanderTitle.*" style "clearlooks-subexpander" # The window of the tooltip is called "gtk-tooltip" ################################################################## diff --git a/rtdata/themes/21-Gray-Orange.gtkrc b/rtdata/themes/21-Gray-Orange.gtkrc index 46c86be0f..78b033e96 100644 --- a/rtdata/themes/21-Gray-Orange.gtkrc +++ b/rtdata/themes/21-Gray-Orange.gtkrc @@ -255,7 +255,7 @@ style "clearlooks-frame" { bg[INSENSITIVE] = shade(0.85, @rt_bg_color) } -style "clearlooks-toolFrame" { +style "clearlooks-toolFrame" = "clearlooks-toolContainer" { bg[NORMAL] = @rt_tool_bg fg[NORMAL] = @rt_tool_border @@ -330,25 +330,19 @@ style "clearlooks-expander" { xthickness = 3 ythickness = 3 - fg[NORMAL] = @rt_salt_pinch - fg[PRELIGHT] = @rt_salt_pinch - fg[INSENSITIVE] = @rt_salt_pinch + fg[NORMAL] = "#a0a0a0" + fg[PRELIGHT] = "#d0d0d0" + fg[INSENSITIVE] = "#808080" bg[PRELIGHT] = mix(0.8, @rt_selected_bg_color, @rt_bg_color) base[NORMAL] = @rt_salt_pinch base[PRELIGHT] = @rt_salt_pinch base[INSENSITIVE] = @rt_salt_pinch - - engine "clearlooks" { - hint = "expander" - } } -style "clearlooks-expanderLabel" { - - fg[NORMAL] = shade (1.26, @rt_text_color) - fg[PRELIGHT] = shade (1.26, @rt_text_color) +style "clearlooks-subexpander" = "clearlooks-expander"{ + bg[NORMAL] = @rt_tool_bg } style "clearlooks-menubar" { @@ -489,7 +483,6 @@ class "GtkScrollbar" style "clearlooks-scrollbar" class "GtkHScrollbar" style "clearlooks-hscrollbar" class "GtkVScrollbar" style "clearlooks-vscrollbar" -class "GtkExpander" style "clearlooks-expander" class "GtkHSV" style "clearlooks-HSV" # General matching follows. The order is choosen so that the right styles override @@ -513,9 +506,6 @@ widget_class "**" style "clearlooks-statusbar" widget_class "**" style "clearlooks-combobox" widget_class "**" style "clearlooks-checkbutton" -widget_class "*." style "clearlooks-expanderLabel" -widget_class "*.." style "clearlooks-expanderLabel" - widget_class "**" style "clearlooks-menubar" widget_class "**" style "clearlooks-menu" widget_class "**" style "clearlooks-menu_item" @@ -532,17 +522,19 @@ widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" -widget_class "*..*." style "clearlooks-separator" -widget_class "*..*." style "clearlooks-toolExpanderBox" -widget_class "*.." style "clearlooks-toolFrame" -widget_class "*...*." style "clearlooks-toolExpanderBox" +widget_class "*...*." style "clearlooks-separator" +widget_class "*...*." style "clearlooks-toolExpanderBox" widget "*.partialPasteHeader.*" style "clearlooks-frame_title" widget "*.partialPasteHeaderSep" style "clearlooks-partialPasteHeaderSep" widget "*.histButton" style "clearlooks-histButton" widget "*.FramelessSpinButton" style "clearlooks-framelessspinbutton" widget "*.ThresholdSelector" style "clearlooks-thresholdselector" -widget "*.ToolPanel" style "clearlooks-toolContainer" +widget "*.MyExpanderTitle.*" style "clearlooks-expander" +widget "*.MyExpanderTitle" style "clearlooks-expander" +widget "*.ToolPanel" style "clearlooks-toolFrame" +widget "*.ToolPanel.*.MyExpanderTitle" style "clearlooks-subexpander" +widget "*.ToolPanel.*.MyExpanderTitle.*" style "clearlooks-subexpander" # The window of the tooltip is called "gtk-tooltip" ################################################################## diff --git a/rtdata/themes/21-Gray-Purple.gtkrc b/rtdata/themes/21-Gray-Purple.gtkrc index c9221c3d7..dff49c820 100644 --- a/rtdata/themes/21-Gray-Purple.gtkrc +++ b/rtdata/themes/21-Gray-Purple.gtkrc @@ -255,7 +255,7 @@ style "clearlooks-frame" { bg[INSENSITIVE] = shade(0.85, @rt_bg_color) } -style "clearlooks-toolFrame" { +style "clearlooks-toolFrame" = "clearlooks-toolContainer" { bg[NORMAL] = @rt_tool_bg fg[NORMAL] = @rt_tool_border @@ -330,25 +330,19 @@ style "clearlooks-expander" { xthickness = 3 ythickness = 3 - fg[NORMAL] = @rt_salt_pinch - fg[PRELIGHT] = @rt_salt_pinch - fg[INSENSITIVE] = @rt_salt_pinch + fg[NORMAL] = "#a0a0a0" + fg[PRELIGHT] = "#d0d0d0" + fg[INSENSITIVE] = "#808080" bg[PRELIGHT] = mix(0.8, @rt_selected_bg_color, @rt_bg_color) base[NORMAL] = @rt_salt_pinch base[PRELIGHT] = @rt_salt_pinch base[INSENSITIVE] = @rt_salt_pinch - - engine "clearlooks" { - hint = "expander" - } } -style "clearlooks-expanderLabel" { - - fg[NORMAL] = shade (1.26, @rt_text_color) - fg[PRELIGHT] = shade (1.26, @rt_text_color) +style "clearlooks-subexpander" = "clearlooks-expander"{ + bg[NORMAL] = @rt_tool_bg } style "clearlooks-menubar" { @@ -489,7 +483,6 @@ class "GtkScrollbar" style "clearlooks-scrollbar" class "GtkHScrollbar" style "clearlooks-hscrollbar" class "GtkVScrollbar" style "clearlooks-vscrollbar" -class "GtkExpander" style "clearlooks-expander" class "GtkHSV" style "clearlooks-HSV" # General matching follows. The order is choosen so that the right styles override @@ -513,9 +506,6 @@ widget_class "**" style "clearlooks-statusbar" widget_class "**" style "clearlooks-combobox" widget_class "**" style "clearlooks-checkbutton" -widget_class "*." style "clearlooks-expanderLabel" -widget_class "*.." style "clearlooks-expanderLabel" - widget_class "**" style "clearlooks-menubar" widget_class "**" style "clearlooks-menu" widget_class "**" style "clearlooks-menu_item" @@ -532,17 +522,19 @@ widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" -widget_class "*..*." style "clearlooks-separator" -widget_class "*..*." style "clearlooks-toolExpanderBox" -widget_class "*.." style "clearlooks-toolFrame" -widget_class "*...*." style "clearlooks-toolExpanderBox" +widget_class "*...*." style "clearlooks-separator" +widget_class "*...*." style "clearlooks-toolExpanderBox" widget "*.partialPasteHeader.*" style "clearlooks-frame_title" widget "*.partialPasteHeaderSep" style "clearlooks-partialPasteHeaderSep" widget "*.histButton" style "clearlooks-histButton" widget "*.FramelessSpinButton" style "clearlooks-framelessspinbutton" widget "*.ThresholdSelector" style "clearlooks-thresholdselector" -widget "*.ToolPanel" style "clearlooks-toolContainer" +widget "*.MyExpanderTitle.*" style "clearlooks-expander" +widget "*.MyExpanderTitle" style "clearlooks-expander" +widget "*.ToolPanel" style "clearlooks-toolFrame" +widget "*.ToolPanel.*.MyExpanderTitle" style "clearlooks-subexpander" +widget "*.ToolPanel.*.MyExpanderTitle.*" style "clearlooks-subexpander" # The window of the tooltip is called "gtk-tooltip" ################################################################## diff --git a/rtdata/themes/21-Gray-Red.gtkrc b/rtdata/themes/21-Gray-Red.gtkrc index 00a2f0a27..faa48cfa1 100644 --- a/rtdata/themes/21-Gray-Red.gtkrc +++ b/rtdata/themes/21-Gray-Red.gtkrc @@ -255,7 +255,7 @@ style "clearlooks-frame" { bg[INSENSITIVE] = shade(0.85, @rt_bg_color) } -style "clearlooks-toolFrame" { +style "clearlooks-toolFrame" = "clearlooks-toolContainer" { bg[NORMAL] = @rt_tool_bg fg[NORMAL] = @rt_tool_border @@ -330,25 +330,19 @@ style "clearlooks-expander" { xthickness = 3 ythickness = 3 - fg[NORMAL] = @rt_salt_pinch - fg[PRELIGHT] = @rt_salt_pinch - fg[INSENSITIVE] = @rt_salt_pinch + fg[NORMAL] = "#a0a0a0" + fg[PRELIGHT] = "#d0d0d0" + fg[INSENSITIVE] = "#808080" bg[PRELIGHT] = mix(0.8, @rt_selected_bg_color, @rt_bg_color) base[NORMAL] = @rt_salt_pinch base[PRELIGHT] = @rt_salt_pinch base[INSENSITIVE] = @rt_salt_pinch - - engine "clearlooks" { - hint = "expander" - } } -style "clearlooks-expanderLabel" { - - fg[NORMAL] = shade (1.26, @rt_text_color) - fg[PRELIGHT] = shade (1.26, @rt_text_color) +style "clearlooks-subexpander" = "clearlooks-expander"{ + bg[NORMAL] = @rt_tool_bg } style "clearlooks-menubar" { @@ -489,7 +483,6 @@ class "GtkScrollbar" style "clearlooks-scrollbar" class "GtkHScrollbar" style "clearlooks-hscrollbar" class "GtkVScrollbar" style "clearlooks-vscrollbar" -class "GtkExpander" style "clearlooks-expander" class "GtkHSV" style "clearlooks-HSV" # General matching follows. The order is choosen so that the right styles override @@ -513,9 +506,6 @@ widget_class "**" style "clearlooks-statusbar" widget_class "**" style "clearlooks-combobox" widget_class "**" style "clearlooks-checkbutton" -widget_class "*." style "clearlooks-expanderLabel" -widget_class "*.." style "clearlooks-expanderLabel" - widget_class "**" style "clearlooks-menubar" widget_class "**" style "clearlooks-menu" widget_class "**" style "clearlooks-menu_item" @@ -532,17 +522,19 @@ widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" -widget_class "*..*." style "clearlooks-separator" -widget_class "*..*." style "clearlooks-toolExpanderBox" -widget_class "*.." style "clearlooks-toolFrame" -widget_class "*...*." style "clearlooks-toolExpanderBox" +widget_class "*...*." style "clearlooks-separator" +widget_class "*...*." style "clearlooks-toolExpanderBox" widget "*.partialPasteHeader.*" style "clearlooks-frame_title" widget "*.partialPasteHeaderSep" style "clearlooks-partialPasteHeaderSep" widget "*.histButton" style "clearlooks-histButton" widget "*.FramelessSpinButton" style "clearlooks-framelessspinbutton" widget "*.ThresholdSelector" style "clearlooks-thresholdselector" -widget "*.ToolPanel" style "clearlooks-toolContainer" +widget "*.MyExpanderTitle.*" style "clearlooks-expander" +widget "*.MyExpanderTitle" style "clearlooks-expander" +widget "*.ToolPanel" style "clearlooks-toolFrame" +widget "*.ToolPanel.*.MyExpanderTitle" style "clearlooks-subexpander" +widget "*.ToolPanel.*.MyExpanderTitle.*" style "clearlooks-subexpander" # The window of the tooltip is called "gtk-tooltip" ################################################################## diff --git a/rtdata/themes/25-Gray-Gray.gtkrc b/rtdata/themes/25-Gray-Gray.gtkrc index 949be82a9..08a4f1a11 100644 --- a/rtdata/themes/25-Gray-Gray.gtkrc +++ b/rtdata/themes/25-Gray-Gray.gtkrc @@ -255,7 +255,7 @@ style "clearlooks-frame" { bg[INSENSITIVE] = mix(0.60, @rt_tool_bg, @rt_tool_border) } -style "clearlooks-toolFrame" { +style "clearlooks-toolFrame" = "clearlooks-toolContainer" { bg[NORMAL] = @rt_tool_bg fg[NORMAL] = @rt_tool_border @@ -330,25 +330,19 @@ style "clearlooks-expander" { xthickness = 3 ythickness = 3 - fg[NORMAL] = @rt_salt_pinch - fg[PRELIGHT] = @rt_salt_pinch - fg[INSENSITIVE] = @rt_salt_pinch + fg[NORMAL] = "#a0a0a0" + fg[PRELIGHT] = "#d0d0d0" + fg[INSENSITIVE] = "#808080" bg[PRELIGHT] = mix(0.75, @rt_selected_bg_color, @rt_bg_color) base[NORMAL] = @rt_salt_pinch base[PRELIGHT] = @rt_salt_pinch base[INSENSITIVE] = @rt_salt_pinch - - engine "clearlooks" { - hint = "expander" - } } -style "clearlooks-expanderLabel" { - - fg[NORMAL] = "#a0a0a0" - fg[PRELIGHT] = "#d0d0d0" +style "clearlooks-subexpander" = "clearlooks-expander"{ + bg[NORMAL] = @rt_tool_bg } style "clearlooks-menubar" { @@ -489,7 +483,6 @@ class "GtkScrollbar" style "clearlooks-scrollbar" class "GtkHScrollbar" style "clearlooks-hscrollbar" class "GtkVScrollbar" style "clearlooks-vscrollbar" -class "GtkExpander" style "clearlooks-expander" class "GtkHSV" style "clearlooks-HSV" # General matching follows. The order is choosen so that the right styles override @@ -513,9 +506,6 @@ widget_class "**" style "clearlooks-statusbar" widget_class "**" style "clearlooks-combobox" widget_class "**" style "clearlooks-checkbutton" -widget_class "*." style "clearlooks-expanderLabel" -widget_class "*.." style "clearlooks-expanderLabel" - widget_class "**" style "clearlooks-menubar" widget_class "**" style "clearlooks-menu" widget_class "**" style "clearlooks-menu_item" @@ -532,17 +522,19 @@ widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" -widget_class "*..*." style "clearlooks-separator" -widget_class "*..*." style "clearlooks-toolExpanderBox" -widget_class "*.." style "clearlooks-toolFrame" -widget_class "*...*." style "clearlooks-toolExpanderBox" +widget_class "*...*." style "clearlooks-separator" +widget_class "*...*." style "clearlooks-toolExpanderBox" widget "*.partialPasteHeader.*" style "clearlooks-frame_title" widget "*.partialPasteHeaderSep" style "clearlooks-partialPasteHeaderSep" widget "*.histButton" style "clearlooks-histButton" widget "*.FramelessSpinButton" style "clearlooks-framelessspinbutton" widget "*.ThresholdSelector" style "clearlooks-thresholdselector" -widget "*.ToolPanel" style "clearlooks-toolContainer" +widget "*.MyExpanderTitle.*" style "clearlooks-expander" +widget "*.MyExpanderTitle" style "clearlooks-expander" +widget "*.ToolPanel" style "clearlooks-toolFrame" +widget "*.ToolPanel.*.MyExpanderTitle" style "clearlooks-subexpander" +widget "*.ToolPanel.*.MyExpanderTitle.*" style "clearlooks-subexpander" # The window of the tooltip is called "gtk-tooltip" ################################################################## diff --git a/rtdata/themes/25-Gray-Purple.gtkrc b/rtdata/themes/25-Gray-Purple.gtkrc index c74be6334..9d4d245b4 100644 --- a/rtdata/themes/25-Gray-Purple.gtkrc +++ b/rtdata/themes/25-Gray-Purple.gtkrc @@ -255,7 +255,7 @@ style "clearlooks-frame" { bg[INSENSITIVE] = mix(0.60, @rt_tool_bg, @rt_tool_border) } -style "clearlooks-toolFrame" { +style "clearlooks-toolFrame" = "clearlooks-toolContainer" { bg[NORMAL] = @rt_tool_bg fg[NORMAL] = @rt_tool_border @@ -330,25 +330,19 @@ style "clearlooks-expander" { xthickness = 3 ythickness = 3 - fg[NORMAL] = @rt_salt_pinch - fg[PRELIGHT] = @rt_salt_pinch - fg[INSENSITIVE] = @rt_salt_pinch + fg[NORMAL] = "#a0a0a0" + fg[PRELIGHT] = "#d0d0d0" + fg[INSENSITIVE] = "#808080" bg[PRELIGHT] = mix(0.75, @rt_selected_bg_color, @rt_bg_color) base[NORMAL] = @rt_salt_pinch base[PRELIGHT] = @rt_salt_pinch base[INSENSITIVE] = @rt_salt_pinch - - engine "clearlooks" { - hint = "expander" - } } -style "clearlooks-expanderLabel" { - - fg[NORMAL] = "#a0a0a0" - fg[PRELIGHT] = "#d0d0d0" +style "clearlooks-subexpander" = "clearlooks-expander"{ + bg[NORMAL] = @rt_tool_bg } style "clearlooks-menubar" { @@ -489,7 +483,6 @@ class "GtkScrollbar" style "clearlooks-scrollbar" class "GtkHScrollbar" style "clearlooks-hscrollbar" class "GtkVScrollbar" style "clearlooks-vscrollbar" -class "GtkExpander" style "clearlooks-expander" class "GtkHSV" style "clearlooks-HSV" # General matching follows. The order is choosen so that the right styles override @@ -513,9 +506,6 @@ widget_class "**" style "clearlooks-statusbar" widget_class "**" style "clearlooks-combobox" widget_class "**" style "clearlooks-checkbutton" -widget_class "*." style "clearlooks-expanderLabel" -widget_class "*.." style "clearlooks-expanderLabel" - widget_class "**" style "clearlooks-menubar" widget_class "**" style "clearlooks-menu" widget_class "**" style "clearlooks-menu_item" @@ -532,17 +522,19 @@ widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" -widget_class "*..*." style "clearlooks-separator" -widget_class "*..*." style "clearlooks-toolExpanderBox" -widget_class "*.." style "clearlooks-toolFrame" -widget_class "*...*." style "clearlooks-toolExpanderBox" +widget_class "*...*." style "clearlooks-separator" +widget_class "*...*." style "clearlooks-toolExpanderBox" widget "*.partialPasteHeader.*" style "clearlooks-frame_title" widget "*.partialPasteHeaderSep" style "clearlooks-partialPasteHeaderSep" widget "*.histButton" style "clearlooks-histButton" widget "*.FramelessSpinButton" style "clearlooks-framelessspinbutton" widget "*.ThresholdSelector" style "clearlooks-thresholdselector" -widget "*.ToolPanel" style "clearlooks-toolContainer" +widget "*.MyExpanderTitle.*" style "clearlooks-expander" +widget "*.MyExpanderTitle" style "clearlooks-expander" +widget "*.ToolPanel" style "clearlooks-toolFrame" +widget "*.ToolPanel.*.MyExpanderTitle" style "clearlooks-subexpander" +widget "*.ToolPanel.*.MyExpanderTitle.*" style "clearlooks-subexpander" # The window of the tooltip is called "gtk-tooltip" ################################################################## diff --git a/rtdata/themes/25-Gray-Red.gtkrc b/rtdata/themes/25-Gray-Red.gtkrc index c41471100..741ee69a3 100644 --- a/rtdata/themes/25-Gray-Red.gtkrc +++ b/rtdata/themes/25-Gray-Red.gtkrc @@ -255,7 +255,7 @@ style "clearlooks-frame" { bg[INSENSITIVE] = mix(0.60, @rt_tool_bg, @rt_tool_border) } -style "clearlooks-toolFrame" { +style "clearlooks-toolFrame" = "clearlooks-toolContainer" { bg[NORMAL] = @rt_tool_bg fg[NORMAL] = @rt_tool_border @@ -330,25 +330,19 @@ style "clearlooks-expander" { xthickness = 3 ythickness = 3 - fg[NORMAL] = @rt_salt_pinch - fg[PRELIGHT] = @rt_salt_pinch - fg[INSENSITIVE] = @rt_salt_pinch + fg[NORMAL] = "#a0a0a0" + fg[PRELIGHT] = "#d0d0d0" + fg[INSENSITIVE] = "#808080" bg[PRELIGHT] = mix(0.75, @rt_selected_bg_color, @rt_bg_color) base[NORMAL] = @rt_salt_pinch base[PRELIGHT] = @rt_salt_pinch base[INSENSITIVE] = @rt_salt_pinch - - engine "clearlooks" { - hint = "expander" - } } -style "clearlooks-expanderLabel" { - - fg[NORMAL] = "#a0a0a0" - fg[PRELIGHT] = "#d0d0d0" +style "clearlooks-subexpander" = "clearlooks-expander"{ + bg[NORMAL] = @rt_tool_bg } style "clearlooks-menubar" { @@ -489,7 +483,6 @@ class "GtkScrollbar" style "clearlooks-scrollbar" class "GtkHScrollbar" style "clearlooks-hscrollbar" class "GtkVScrollbar" style "clearlooks-vscrollbar" -class "GtkExpander" style "clearlooks-expander" class "GtkHSV" style "clearlooks-HSV" # General matching follows. The order is choosen so that the right styles override @@ -513,9 +506,6 @@ widget_class "**" style "clearlooks-statusbar" widget_class "**" style "clearlooks-combobox" widget_class "**" style "clearlooks-checkbutton" -widget_class "*." style "clearlooks-expanderLabel" -widget_class "*.." style "clearlooks-expanderLabel" - widget_class "**" style "clearlooks-menubar" widget_class "**" style "clearlooks-menu" widget_class "**" style "clearlooks-menu_item" @@ -532,17 +522,19 @@ widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" -widget_class "*..*." style "clearlooks-separator" -widget_class "*..*." style "clearlooks-toolExpanderBox" -widget_class "*.." style "clearlooks-toolFrame" -widget_class "*...*." style "clearlooks-toolExpanderBox" +widget_class "*...*." style "clearlooks-separator" +widget_class "*...*." style "clearlooks-toolExpanderBox" widget "*.partialPasteHeader.*" style "clearlooks-frame_title" widget "*.partialPasteHeaderSep" style "clearlooks-partialPasteHeaderSep" widget "*.histButton" style "clearlooks-histButton" widget "*.FramelessSpinButton" style "clearlooks-framelessspinbutton" widget "*.ThresholdSelector" style "clearlooks-thresholdselector" -widget "*.ToolPanel" style "clearlooks-toolContainer" +widget "*.MyExpanderTitle.*" style "clearlooks-expander" +widget "*.MyExpanderTitle" style "clearlooks-expander" +widget "*.ToolPanel" style "clearlooks-toolFrame" +widget "*.ToolPanel.*.MyExpanderTitle" style "clearlooks-subexpander" +widget "*.ToolPanel.*.MyExpanderTitle.*" style "clearlooks-subexpander" # The window of the tooltip is called "gtk-tooltip" ################################################################## diff --git a/rtdata/themes/37-Gray-Red-Textured.gtkrc b/rtdata/themes/37-Gray-Red-Textured.gtkrc index 508ef23c4..0ef5fad92 100644 --- a/rtdata/themes/37-Gray-Red-Textured.gtkrc +++ b/rtdata/themes/37-Gray-Red-Textured.gtkrc @@ -602,7 +602,7 @@ style "clearlooks-frame" { bg[INSENSITIVE] = mix(0.60, @rt_tool_bg, @rt_tool_border) } -style "clearlooks-toolFrame" { +style "clearlooks-toolFrame" = "clearlooks-toolContainer" { bg[NORMAL] = @rt_tool_bg fg[NORMAL] = @rt_tool_border @@ -677,25 +677,19 @@ style "clearlooks-expander" { xthickness = 3 ythickness = 3 - fg[NORMAL] = @rt_salt_pinch - fg[PRELIGHT] = @rt_salt_pinch - fg[INSENSITIVE] = @rt_salt_pinch + fg[NORMAL] = "#a0a0a0" + fg[PRELIGHT] = "#d0d0d0" + fg[INSENSITIVE] = "#808080" bg[PRELIGHT] = mix (0.5, @rt_salt_pinch, @rt_bg_color) base[NORMAL] = @rt_salt_pinch base[PRELIGHT] = @rt_salt_pinch base[INSENSITIVE] = @rt_salt_pinch - - engine "clearlooks" { - hint = "expander" - } } -style "clearlooks-expanderLabel" { - - fg[NORMAL] = shade (1.12, @rt_fg_color) - fg[PRELIGHT] = shade (1.20, @rt_fg_color) +style "clearlooks-subexpander" = "clearlooks-expander"{ + bg[NORMAL] = @rt_tool_bg } style "clearlooks-menubar" { @@ -834,7 +828,6 @@ class "GtkSpinButton" style "clearlooks-spinbutton" class "GtkRange" style "clearlooks-range" class "GtkScrollbar" style "clearlooks-scrollbar" -class "GtkExpander" style "clearlooks-expander" class "GtkHSV" style "clearlooks-HSV" # General matching follows. The order is choosen so that the right styles override @@ -858,9 +851,6 @@ widget_class "**" style "clearlooks-statusbar" widget_class "**" style "clearlooks-combobox" widget_class "**" style "clearlooks-checkbutton" -widget_class "*." style "clearlooks-expanderLabel" -widget_class "*.." style "clearlooks-expanderLabel" - widget_class "**" style "clearlooks-menubar" widget_class "**" style "clearlooks-menu" widget_class "**" style "clearlooks-menu_item" @@ -877,17 +867,19 @@ widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" -widget_class "*..*." style "clearlooks-separator" -widget_class "*..*." style "clearlooks-toolExpanderBox" -widget_class "*.." style "clearlooks-toolFrame" -widget_class "*...*." style "clearlooks-toolExpanderBox" +widget_class "*...*." style "clearlooks-separator" +widget_class "*...*." style "clearlooks-toolExpanderBox" widget "*.partialPasteHeader.*" style "clearlooks-frame_title" widget "*.partialPasteHeaderSep" style "clearlooks-partialPasteHeaderSep" widget "*.histButton" style "clearlooks-histButton" widget "*.FramelessSpinButton" style "clearlooks-framelessspinbutton" widget "*.ThresholdSelector" style "clearlooks-thresholdselector" -widget "*.ToolPanel" style "clearlooks-toolContainer" +widget "*.MyExpanderTitle.*" style "clearlooks-expander" +widget "*.MyExpanderTitle" style "clearlooks-expander" +widget "*.ToolPanel" style "clearlooks-toolFrame" +widget "*.ToolPanel.*.MyExpanderTitle" style "clearlooks-subexpander" +widget "*.ToolPanel.*.MyExpanderTitle.*" style "clearlooks-subexpander" # The window of the tooltip is called "gtk-tooltip" ################################################################## diff --git a/rtdata/themes/37-Gray-Red.gtkrc b/rtdata/themes/37-Gray-Red.gtkrc index ec645a6bf..71e543630 100644 --- a/rtdata/themes/37-Gray-Red.gtkrc +++ b/rtdata/themes/37-Gray-Red.gtkrc @@ -255,7 +255,7 @@ style "clearlooks-frame" { bg[INSENSITIVE] = mix(0.60, @rt_tool_bg, @rt_tool_border) } -style "clearlooks-toolFrame" { +style "clearlooks-toolFrame" = "clearlooks-toolContainer" { bg[NORMAL] = @rt_tool_bg fg[NORMAL] = @rt_tool_border @@ -330,25 +330,19 @@ style "clearlooks-expander" { xthickness = 3 ythickness = 3 - fg[NORMAL] = @rt_salt_pinch - fg[PRELIGHT] = @rt_salt_pinch - fg[INSENSITIVE] = @rt_salt_pinch + fg[NORMAL] = "#a0a0a0" + fg[PRELIGHT] = "#d0d0d0" + fg[INSENSITIVE] = "#808080" bg[PRELIGHT] = mix (0.5, @rt_salt_pinch, @rt_bg_color) base[NORMAL] = @rt_salt_pinch base[PRELIGHT] = @rt_salt_pinch base[INSENSITIVE] = @rt_salt_pinch - - engine "clearlooks" { - hint = "expander" - } } -style "clearlooks-expanderLabel" { - - fg[NORMAL] = shade (1.12, @rt_fg_color) - fg[PRELIGHT] = shade (1.20, @rt_fg_color) +style "clearlooks-subexpander" = "clearlooks-expander"{ + bg[NORMAL] = @rt_tool_bg } style "clearlooks-menubar" { @@ -491,7 +485,6 @@ class "GtkScrollbar" style "clearlooks-scrollbar" class "GtkHScrollbar" style "clearlooks-hscrollbar" class "GtkVScrollbar" style "clearlooks-vscrollbar" -class "GtkExpander" style "clearlooks-expander" class "GtkHSV" style "clearlooks-HSV" # General matching follows. The order is choosen so that the right styles override @@ -515,9 +508,6 @@ widget_class "**" style "clearlooks-statusbar" widget_class "**" style "clearlooks-combobox" widget_class "**" style "clearlooks-checkbutton" -widget_class "*." style "clearlooks-expanderLabel" -widget_class "*.." style "clearlooks-expanderLabel" - widget_class "**" style "clearlooks-menubar" widget_class "**" style "clearlooks-menu" widget_class "**" style "clearlooks-menu_item" @@ -534,17 +524,19 @@ widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" -widget_class "*..*." style "clearlooks-separator" -widget_class "*..*." style "clearlooks-toolExpanderBox" -widget_class "*.." style "clearlooks-toolFrame" -widget_class "*...*." style "clearlooks-toolExpanderBox" +widget_class "*...*." style "clearlooks-separator" +widget_class "*...*." style "clearlooks-toolExpanderBox" widget "*.partialPasteHeader.*" style "clearlooks-frame_title" widget "*.partialPasteHeaderSep" style "clearlooks-partialPasteHeaderSep" widget "*.histButton" style "clearlooks-histButton" widget "*.FramelessSpinButton" style "clearlooks-framelessspinbutton" widget "*.ThresholdSelector" style "clearlooks-thresholdselector" -widget "*.ToolPanel" style "clearlooks-toolContainer" +widget "*.MyExpanderTitle.*" style "clearlooks-expander" +widget "*.MyExpanderTitle" style "clearlooks-expander" +widget "*.ToolPanel" style "clearlooks-toolFrame" +widget "*.ToolPanel.*.MyExpanderTitle" style "clearlooks-subexpander" +widget "*.ToolPanel.*.MyExpanderTitle.*" style "clearlooks-subexpander" # The window of the tooltip is called "gtk-tooltip" ################################################################## diff --git a/rtdata/themes/63-Gray-Cyan.gtkrc b/rtdata/themes/63-Gray-Cyan.gtkrc index ba51ec29b..efcd18e44 100644 --- a/rtdata/themes/63-Gray-Cyan.gtkrc +++ b/rtdata/themes/63-Gray-Cyan.gtkrc @@ -255,7 +255,7 @@ style "clearlooks-frame" { bg[INSENSITIVE] = mix(0.60, @rt_tool_bg, @rt_tool_border) } -style "clearlooks-toolFrame" { +style "clearlooks-toolFrame" = "clearlooks-toolContainer" { bg[NORMAL] = @rt_tool_bg fg[NORMAL] = @rt_tool_border @@ -331,25 +331,19 @@ style "clearlooks-expander" { xthickness = 3 ythickness = 3 - fg[NORMAL] = mix (0.6, @rt_selected_bg_color, @rt_text_color) - fg[PRELIGHT] = mix (0.6, @rt_selected_bg_color, @rt_text_color) - fg[INSENSITIVE] = @rt_selected_bg_color + fg[NORMAL] = "#000000" + fg[PRELIGHT] = "#000000" + fg[INSENSITIVE] = mix (0.5, "#000000", @rt_bg_color) bg[PRELIGHT] = mix (0.5, @rt_selected_bg_color, @rt_bg_color) base[NORMAL] = mix (0.6, @rt_selected_bg_color, @rt_text_color) base[PRELIGHT] = @rt_selected_fg_color base[INSENSITIVE] = @rt_selected_bg_color - - engine "clearlooks" { - hint = "expander" - } } -style "clearlooks-expanderLabel" { - - fg[NORMAL] = @rt_text_color - fg[PRELIGHT] = @rt_text_color +style "clearlooks-subexpander" = "clearlooks-expander"{ + bg[NORMAL] = @rt_tool_bg } style "clearlooks-menubar" { @@ -475,7 +469,6 @@ class "GtkScrollbar" style "clearlooks-scrollbar" class "GtkHScrollbar" style "clearlooks-hscrollbar" class "GtkVScrollbar" style "clearlooks-vscrollbar" -class "GtkExpander" style "clearlooks-expander" class "GtkHSV" style "clearlooks-HSV" # General matching follows. The order is choosen so that the right styles override @@ -498,9 +491,6 @@ widget_class "**" style "clearlooks-statusbar" #widget_class "**" style "clearlooks-comboboxentry" widget_class "**" style "clearlooks-combobox" -widget_class "*." style "clearlooks-expanderLabel" -widget_class "*.." style "clearlooks-expanderLabel" - widget_class "**" style "clearlooks-menubar" widget_class "**" style "clearlooks-menu" widget_class "**" style "clearlooks-menu_item" @@ -517,17 +507,19 @@ widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" -widget_class "*..*." style "clearlooks-separator" -widget_class "*..*." style "clearlooks-toolExpanderBox" -widget_class "*.." style "clearlooks-toolFrame" -widget_class "*...*." style "clearlooks-toolExpanderBox" +widget_class "*...*." style "clearlooks-separator" +widget_class "*...*." style "clearlooks-toolExpanderBox" widget "*.partialPasteHeader.*" style "clearlooks-frame_title" widget "*.partialPasteHeaderSep" style "clearlooks-partialPasteHeaderSep" widget "*.histButton" style "clearlooks-histButton" widget "*.FramelessSpinButton" style "clearlooks-framelessspinbutton" widget "*.ThresholdSelector" style "clearlooks-thresholdselector" -widget "*.ToolPanel" style "clearlooks-toolContainer" +widget "*.MyExpanderTitle.*" style "clearlooks-expander" +widget "*.MyExpanderTitle" style "clearlooks-expander" +widget "*.ToolPanel" style "clearlooks-toolFrame" +widget "*.ToolPanel.*.MyExpanderTitle" style "clearlooks-subexpander" +widget "*.ToolPanel.*.MyExpanderTitle.*" style "clearlooks-subexpander" # The window of the tooltip is called "gtk-tooltip" ################################################################## diff --git a/rtdata/themes/92-Beige-DarkCyan.gtkrc b/rtdata/themes/92-Beige-DarkCyan.gtkrc index 9d101f389..e5365f104 100644 --- a/rtdata/themes/92-Beige-DarkCyan.gtkrc +++ b/rtdata/themes/92-Beige-DarkCyan.gtkrc @@ -254,7 +254,7 @@ style "clearlooks-frame" { bg[INSENSITIVE] = mix(0.60, @rt_tool_bg, @rt_tool_border) } -style "clearlooks-toolFrame" { +style "clearlooks-toolFrame" = "clearlooks-toolContainer" { bg[NORMAL] = @rt_tool_bg fg[NORMAL] = @rt_tool_border @@ -327,25 +327,19 @@ style "clearlooks-expander" { xthickness = 3 ythickness = 3 - fg[NORMAL] = mix (0.6, @rt_selected_bg_color, @rt_text_color) - fg[PRELIGHT] = mix (0.6, @rt_selected_bg_color, @rt_text_color) - fg[INSENSITIVE] = @rt_selected_bg_color + fg[NORMAL] = "#000000" + fg[PRELIGHT] = "#000000" + fg[INSENSITIVE] = mix (0.5, "#000000", @rt_bg_color) bg[PRELIGHT] = mix (0.5, @rt_selected_bg_color, @rt_bg_color) base[NORMAL] = mix (0.6, @rt_selected_bg_color, @rt_text_color) base[PRELIGHT] = @rt_selected_fg_color base[INSENSITIVE] = @rt_selected_bg_color - - engine "clearlooks" { - hint = "expander" - } } -style "clearlooks-expanderLabel" { - - fg[NORMAL] = @rt_text_color - fg[PRELIGHT] = @rt_text_color +style "clearlooks-subexpander" = "clearlooks-expander"{ + bg[NORMAL] = @rt_tool_bg } style "clearlooks-menubar" { @@ -470,7 +464,6 @@ class "GtkScrollbar" style "clearlooks-scrollbar" class "GtkHScrollbar" style "clearlooks-hscrollbar" class "GtkVScrollbar" style "clearlooks-vscrollbar" -class "GtkExpander" style "clearlooks-expander" class "GtkHSV" style "clearlooks-HSV" # General matching follows. The order is choosen so that the right styles override @@ -493,9 +486,6 @@ widget_class "**" style "clearlooks-statusbar" #widget_class "**" style "clearlooks-comboboxentry" widget_class "**" style "clearlooks-combobox" -widget_class "*." style "clearlooks-expanderLabel" -widget_class "*.." style "clearlooks-expanderLabel" - widget_class "**" style "clearlooks-menubar" widget_class "**" style "clearlooks-menu" widget_class "**" style "clearlooks-menu_item" @@ -512,17 +502,19 @@ widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" widget_class "*.." style "clearlooks-treeview_header" -widget_class "*..*." style "clearlooks-separator" -widget_class "*..*." style "clearlooks-toolExpanderBox" -widget_class "*.." style "clearlooks-toolFrame" -widget_class "*...*." style "clearlooks-toolExpanderBox" +widget_class "*...*." style "clearlooks-separator" +widget_class "*...*." style "clearlooks-toolExpanderBox" widget "*.partialPasteHeader.*" style "clearlooks-frame_title" widget "*.partialPasteHeaderSep" style "clearlooks-partialPasteHeaderSep" widget "*.histButton" style "clearlooks-histButton" widget "*.FramelessSpinButton" style "clearlooks-framelessspinbutton" widget "*.ThresholdSelector" style "clearlooks-thresholdselector" -widget "*.ToolPanel" style "clearlooks-toolContainer" +widget "*.MyExpanderTitle.*" style "clearlooks-expander" +widget "*.MyExpanderTitle" style "clearlooks-expander" +widget "*.ToolPanel" style "clearlooks-toolFrame" +widget "*.ToolPanel.*.MyExpanderTitle" style "clearlooks-subexpander" +widget "*.ToolPanel.*.MyExpanderTitle.*" style "clearlooks-subexpander" # The window of the tooltip is called "gtk-tooltip" ################################################################## diff --git a/rtgui/bayerpreprocess.cc b/rtgui/bayerpreprocess.cc index ce580fe5a..fc767880d 100644 --- a/rtgui/bayerpreprocess.cc +++ b/rtgui/bayerpreprocess.cc @@ -24,7 +24,7 @@ using namespace rtengine; using namespace rtengine::procparams; -BayerPreProcess::BayerPreProcess () : FoldableToolPanel(this) +BayerPreProcess::BayerPreProcess () : FoldableToolPanel(this, "bayerprocess", M("TP_RAW_LABEL"), true) { lineDenoise = Gtk::manage(new Adjuster (M("TP_PREPROCESS_LINEDENOISE"),0,1000,1,0)); lineDenoise->setAdjusterListener (this); diff --git a/rtgui/bayerprocess.cc b/rtgui/bayerprocess.cc index f5b5a4e59..ec2d40c24 100644 --- a/rtgui/bayerprocess.cc +++ b/rtgui/bayerprocess.cc @@ -22,7 +22,7 @@ using namespace rtengine; using namespace rtengine::procparams; -BayerProcess::BayerProcess () : FoldableToolPanel(this) +BayerProcess::BayerProcess () : FoldableToolPanel(this, "bayerpreprocess", M("TP_PREPROCESS_LABEL"), true) { Gtk::HBox* hb1 = Gtk::manage (new Gtk::HBox ()); hb1->pack_start (*Gtk::manage (new Gtk::Label ( M("TP_RAW_DMETHOD") +": ")),Gtk::PACK_SHRINK, 4); diff --git a/rtgui/bayerrawexposure.cc b/rtgui/bayerrawexposure.cc index 141a29fe9..402c1063b 100644 --- a/rtgui/bayerrawexposure.cc +++ b/rtgui/bayerrawexposure.cc @@ -24,7 +24,7 @@ using namespace rtengine; using namespace rtengine::procparams; -BayerRAWExposure::BayerRAWExposure () : FoldableToolPanel(this) +BayerRAWExposure::BayerRAWExposure () : FoldableToolPanel(this, "bayerrawexposure", M("TP_EXPOS_BLACKPOINT_LABEL"), true) { PexBlack1 = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_1"),-2048,2048,0.1,0));//black level PexBlack1->setAdjusterListener (this); diff --git a/rtgui/blackwhite.cc b/rtgui/blackwhite.cc index 75698261a..559b70d4f 100644 --- a/rtgui/blackwhite.cc +++ b/rtgui/blackwhite.cc @@ -28,24 +28,13 @@ using namespace rtengine; using namespace rtengine::procparams; -BlackWhite::BlackWhite (): FoldableToolPanel(this) { +BlackWhite::BlackWhite (): FoldableToolPanel(this, "blackwhite", M("TP_BWMIX_LABEL"), false, true) { CurveListener::setMulti(true); nextredbw = 0.3333; nextgreenbw = 0.3333; nextbluebw = 0.3333; - //----------- Enables checkbox ------------------------------ - - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_active (false); - - pack_start(*enabled, Gtk::PACK_SHRINK, 0); - enabled->show (); - enaconn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &BlackWhite::enabled_toggled) ); - - pack_start (*Gtk::manage (new Gtk::HSeparator())); - //----------- Method combobox ------------------------------ Gtk::HBox* metHBox = Gtk::manage (new Gtk::HBox ()); @@ -416,7 +405,6 @@ void BlackWhite::read (const ProcParams* pp, const ParamsEdited* pedited) { filterconn.block(true); settingconn.block(true); enaccconn.block (true); - enaconn.block (true); if (pedited && !pedited->blackwhite.setting) setting->set_active (15); // "Unchanged" @@ -488,8 +476,7 @@ void BlackWhite::read (const ProcParams* pp, const ParamsEdited* pedited) { enabledcc->set_active (pp->blackwhite.enabledcc); lastEnabledcc = pp->blackwhite.enabledcc; - enabled->set_active (pp->blackwhite.enabled); - lastEnabled = pp->blackwhite.enabled; + setEnabled (pp->blackwhite.enabled); mixerRed->setValue (pp->blackwhite.mixerRed); mixerGreen->setValue (pp->blackwhite.mixerGreen); @@ -527,7 +514,7 @@ void BlackWhite::read (const ProcParams* pp, const ParamsEdited* pedited) { beforeCurve->setUnChanged (!pedited->blackwhite.beforeCurve); afterCurve->setUnChanged (!pedited->blackwhite.afterCurve); autoch->set_inconsistent (!pedited->blackwhite.autoc); - enabled->set_inconsistent (!pedited->blackwhite.enabled); + set_inconsistent (multiImage && !pedited->blackwhite.enabled); enabledcc->set_inconsistent (!pedited->blackwhite.enabledcc); mixerRed->setEditedState (pedited->blackwhite.mixerRed ? Edited : UnEdited); mixerGreen->setEditedState (pedited->blackwhite.mixerGreen ? Edited : UnEdited); @@ -551,7 +538,6 @@ void BlackWhite::read (const ProcParams* pp, const ParamsEdited* pedited) { filterconn.block(false); settingconn.block(false); //autoconn.block (false); - enaconn.block (false); enaccconn.block (false); updateRGBLabel(); @@ -560,7 +546,7 @@ void BlackWhite::read (const ProcParams* pp, const ParamsEdited* pedited) { } void BlackWhite::write (ProcParams* pp, ParamsEdited* pedited) { - pp->blackwhite.enabled = enabled->get_active (); + pp->blackwhite.enabled = getEnabled(); pp->blackwhite.luminanceCurve = luminanceCurve->getCurve (); pp->blackwhite.autoc = autoch->get_active(); pp->blackwhite.enabledcc = enabledcc->get_active (); @@ -589,7 +575,7 @@ void BlackWhite::write (ProcParams* pp, ParamsEdited* pedited) { // else if (tcMode == 1) pp->blackwhite.afterCurveMode = BlackWhiteParams::TC_MODE_WEIGHTEDSTD; if (pedited) { - pedited->blackwhite.enabled = !enabled->get_inconsistent(); + pedited->blackwhite.enabled = !get_inconsistent(); pedited->blackwhite.luminanceCurve = !luminanceCurve->isUnChanged (); pedited->blackwhite.autoc = !autoch->get_inconsistent(); pedited->blackwhite.enabledcc = !enabledcc->get_inconsistent(); @@ -631,7 +617,7 @@ void BlackWhite::write (ProcParams* pp, ParamsEdited* pedited) { } void BlackWhite::algoChanged () { - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvBWMethodalg, algo->get_active_text ());} } @@ -739,7 +725,7 @@ void BlackWhite::settingChanged () { updateRGBLabel(); - if (listener && (multiImage||enabled->get_active())) { + if (listener && (multiImage||getEnabled())) { listener->panelChanged (EvBWsetting, setting->get_active_text ()); } } @@ -758,7 +744,7 @@ void BlackWhite::filterChanged () { updateRGBLabel(); - if (listener && (multiImage||enabled->get_active())) { + if (listener && (multiImage||getEnabled())) { listener->panelChanged (EvBWfilter, filter->get_active_text ()); } } @@ -801,35 +787,19 @@ void BlackWhite::methodChanged () { beforeCurveCEG->show(); afterCurveCEG->show(); } - if (listener && (multiImage||enabled->get_active())) { + if (listener && (multiImage||getEnabled())) { listener->panelChanged (EvBWmethod, method->get_active_text ()); } } -void BlackWhite::enabled_toggled () { - - if (multiImage) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaconn.block (true); - enabled->set_active (false); - enaconn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } - +void BlackWhite::enabledChanged () { if (listener) { - if (enabled->get_inconsistent()) + if (get_inconsistent()) listener->panelChanged (EvBWChmixEnabled, M("GENERAL_UNCHANGED")); - else if (enabled->get_active ()) { + else if (getEnabled()) listener->panelChanged (EvBWChmixEnabled, M("GENERAL_ENABLED")); - } - else { + else listener->panelChanged (EvBWChmixEnabled, M("GENERAL_DISABLED")); - } } } @@ -1046,7 +1016,7 @@ void BlackWhite::adjusterChanged (Adjuster* a, double newval) { updateRGBLabel(); - if (listener && (multiImage||enabled->get_active())) { + if (listener && (multiImage||getEnabled())) { Glib::ustring value = a->getTextValue(); if (a == mixerRed) listener->panelChanged (EvBWred, value ); diff --git a/rtgui/blackwhite.h b/rtgui/blackwhite.h index dc3bb597f..22e032a65 100644 --- a/rtgui/blackwhite.h +++ b/rtgui/blackwhite.h @@ -44,10 +44,10 @@ class BlackWhite : public ToolParamBlock, public AdjusterListener, public Foldab Gtk::HBox* autoHBox; Gtk::Button* neutral; Gtk::Label* RGBLabels; - MyComboBoxText* algo; - sigc::connection algoconn; + MyComboBoxText* algo; + sigc::connection algoconn; Gtk::Label* alLabel; - Gtk::HBox* algoHBox; + Gtk::HBox* algoHBox; Adjuster *mixerRed; Adjuster *mixerGreen; @@ -74,9 +74,6 @@ class BlackWhite : public ToolParamBlock, public AdjusterListener, public Foldab Gtk::Frame* gammaFrame; Gtk::Image *imgIcon[11]; - Gtk::CheckButton* enabled; - bool lastEnabled; - sigc::connection enaconn; Gtk::HSeparator* enabledccSep; Gtk::CheckButton* enabledcc; @@ -118,7 +115,7 @@ class BlackWhite : public ToolParamBlock, public AdjusterListener, public Foldab void setAdjusterBehavior (bool bwadd, bool bwgadd); void trimValues (rtengine::procparams::ProcParams* pp); void enabledcc_toggled (); - void enabled_toggled (); + void enabledChanged (); void methodChanged (); void filterChanged (); void settingChanged (); diff --git a/rtgui/cacorrection.cc b/rtgui/cacorrection.cc index 03ecf5d2b..1cf0429d1 100644 --- a/rtgui/cacorrection.cc +++ b/rtgui/cacorrection.cc @@ -23,7 +23,7 @@ using namespace rtengine; using namespace rtengine::procparams; -CACorrection::CACorrection () : FoldableToolPanel(this) { +CACorrection::CACorrection () : FoldableToolPanel(this, "cacorrection", M("TP_CACORRECTION_LABEL")) { Gtk::Image* icaredL = Gtk::manage (new RTImage ("ajd-ca-red1.png")); Gtk::Image* icaredR = Gtk::manage (new RTImage ("ajd-ca-red2.png")); diff --git a/rtgui/chmixer.cc b/rtgui/chmixer.cc index a937a74d3..e74fa6c80 100644 --- a/rtgui/chmixer.cc +++ b/rtgui/chmixer.cc @@ -22,7 +22,7 @@ using namespace rtengine; using namespace rtengine::procparams; -ChMixer::ChMixer (): FoldableToolPanel(this) { +ChMixer::ChMixer (): FoldableToolPanel(this, "chmixer", M("TP_CHMIXER_LABEL")) { imgIcon[0] = Gtk::manage (new RTImage ("Chanmixer-RR.png")); imgIcon[1] = Gtk::manage (new RTImage ("Chanmixer-RG.png")); diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index 1f2d5cb29..81d0c88b7 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -25,16 +25,12 @@ using namespace rtengine; using namespace rtengine::procparams; -ColorAppearance::ColorAppearance () : FoldableToolPanel(this) { +ColorAppearance::ColorAppearance () : FoldableToolPanel(this, "colorappearance", M("TP_COLORAPP_LABEL"), false, true) { CurveListener::setMulti(true); std::vector milestones; milestones.push_back( GradientMilestone(0., 0., 0., 0.) ); milestones.push_back( GradientMilestone(1., 1., 1., 1.) ); - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_active (false); - pack_start (*enabled); - // ------------------------ Process #1: Converting to CIECAM @@ -360,7 +356,6 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel(this) { surrconn = surrsource->signal_toggled().connect( sigc::mem_fun(*this, &ColorAppearance::surrsource_toggled) ); - enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &ColorAppearance::enabledChanged) ); wbmodelconn = wbmodel->signal_changed().connect ( sigc::mem_fun(*this, &ColorAppearance::wbmodelChanged) ); algoconn = algo->signal_changed().connect ( sigc::mem_fun(*this, &ColorAppearance::algoChanged) ); surroundconn = surround->signal_changed().connect ( sigc::mem_fun(*this, &ColorAppearance::surroundChanged) ); @@ -385,7 +380,7 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel(this) { ColorAppearance::~ColorAppearance () { delete curveEditorG; delete curveEditorG2; - delete curveEditorG3; + delete curveEditorG3; } @@ -433,9 +428,9 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) { // sharpcie->set_inconsistent (!pedited->colorappearance.sharpcie); degree->setAutoInconsistent (multiImage && !pedited->colorappearance.autodegree); - adapscen->setAutoInconsistent (multiImage && !pedited->colorappearance.autoadapscen); + adapscen->setAutoInconsistent (multiImage && !pedited->colorappearance.autoadapscen); + set_inconsistent (multiImage && !pedited->colorappearance.enabled); - enabled->set_inconsistent (multiImage && !pedited->colorappearance.enabled); shape->setUnChanged (!pedited->colorappearance.curve); shape2->setUnChanged (!pedited->colorappearance.curve2); shape3->setUnChanged (!pedited->colorappearance.curve3); @@ -452,9 +447,7 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) { } - enaConn.block (true); - enabled->set_active (pp->colorappearance.enabled); - enaConn.block (false); + setEnabled(pp->colorappearance.enabled); surroundconn.block(true); if (pedited && !pedited->colorappearance.surround) @@ -523,7 +516,6 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) { lasttonecie=pp->colorappearance.tonecie; // lastsharpcie=pp->colorappearance.sharpcie; - lastEnabled = pp->colorappearance.enabled; lastAutoDegree = pp->colorappearance.autodegree; lastAutoAdapscen = pp->colorappearance.autoadapscen; @@ -561,7 +553,7 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) { pp->colorappearance.degree = degree->getValue (); pp->colorappearance.autodegree = degree->getAutoValue (); - pp->colorappearance.enabled = enabled->get_active(); + pp->colorappearance.enabled = getEnabled(); pp->colorappearance.adapscen = adapscen->getValue (); pp->colorappearance.autoadapscen = adapscen->getAutoValue (); pp->colorappearance.adaplum = adaplum->getValue (); @@ -614,7 +606,7 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) { pedited->colorappearance.rstprotection = rstprotection->getEditedState (); pedited->colorappearance.autodegree = !degree->getAutoInconsistent(); pedited->colorappearance.autoadapscen = !adapscen->getAutoInconsistent(); - pedited->colorappearance.enabled = !enabled->get_inconsistent(); + pedited->colorappearance.enabled = !get_inconsistent(); pedited->colorappearance.surround = surround->get_active_text()!=M("GENERAL_UNCHANGED"); pedited->colorappearance.wbmodel = wbmodel->get_active_text()!=M("GENERAL_UNCHANGED"); pedited->colorappearance.algo = algo->get_active_text()!=M("GENERAL_UNCHANGED"); @@ -953,7 +945,7 @@ void ColorAppearance::colorForValue (double valX, double valY, enum ColorCaller: void ColorAppearance::adjusterChanged (Adjuster* a, double newval) { - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { if(a==degree) listener->panelChanged (EvCATDegree, a->getTextValue()); else if(a==adapscen) @@ -1007,7 +999,7 @@ void ColorAppearance::adjusterAutoToggled (Adjuster* a, bool newval) { } - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { if(a==degree) { if (degree->getAutoInconsistent()) @@ -1031,43 +1023,29 @@ void ColorAppearance::adjusterAutoToggled (Adjuster* a, bool newval) { } void ColorAppearance::enabledChanged () { - if (multiImage) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaConn.block (true); - enabled->set_active (false); - enaConn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } - if (listener) { - if (enabled->get_inconsistent()) + if (get_inconsistent()) listener->panelChanged (EvCATEnabled, M("GENERAL_UNCHANGED")); - else if (enabled->get_active ()) { + else if (getEnabled()) { listener->panelChanged (EvCATEnabled, M("GENERAL_ENABLED")); - curveEditorG->set_sensitive (true); - toneCurveMode->set_sensitive (true); - } + curveEditorG->set_sensitive (true); + toneCurveMode->set_sensitive (true); + } else - {listener->panelChanged (EvCATEnabled, M("GENERAL_DISABLED")); - } + listener->panelChanged (EvCATEnabled, M("GENERAL_DISABLED")); } } void ColorAppearance::surroundChanged () { - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvCATMethodsur, surround->get_active_text ()); } } void ColorAppearance::wbmodelChanged () { - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvCATMethodWB, wbmodel->get_active_text ()); } } @@ -1142,7 +1120,7 @@ void ColorAppearance::algoChanged () { curveEditorG3->show(); } - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvCATMethodalg, algo->get_active_text ()); } } diff --git a/rtgui/colorappearance.h b/rtgui/colorappearance.h index 39a5b84cb..5bb821965 100644 --- a/rtgui/colorappearance.h +++ b/rtgui/colorappearance.h @@ -61,7 +61,6 @@ class ColorAppearance : public ToolParamBlock, public AdjusterListener, public F Gtk::CheckButton* tonecie; // Gtk::CheckButton* sharpcie; - Gtk::CheckButton* enabled; MyComboBoxText* surround; sigc::connection surroundconn; MyComboBoxText* wbmodel; @@ -79,10 +78,8 @@ class ColorAppearance : public ToolParamBlock, public AdjusterListener, public F DiagonalCurveEditor* shape2; DiagonalCurveEditor* shape3; double nextCcam, nextCadap; - bool lastEnabled; bool lastAutoDegree; bool lastAutoAdapscen; - sigc::connection enaConn; bool lastsurr; bool lastgamut; // bool lastbadpix; diff --git a/rtgui/colortoning.cc b/rtgui/colortoning.cc index a23282e3d..a28ff060d 100644 --- a/rtgui/colortoning.cc +++ b/rtgui/colortoning.cc @@ -8,16 +8,10 @@ using namespace rtengine; using namespace rtengine::procparams; -ColorToning::ColorToning () : FoldableToolPanel(this) +ColorToning::ColorToning () : FoldableToolPanel(this, "colortoning", M("TP_COLORTONING_LABEL"), false, true) { nextbw=0; CurveListener::setMulti(true); - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_active (false); - enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &ColorToning::enabledChanged) ); - - pack_start(*enabled); - pack_start(*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_EXPAND_WIDGET, 4); //---------------method @@ -378,7 +372,7 @@ void ColorToning::neutral_pressed () { //balance->resetValue(false); enableListener(); - if (listener && enabled->get_active()) + if (listener && getEnabled()) listener->panelChanged (EvColorToningNeutral, M("ADJUSTER_RESET_TO_DEFAULT")); } @@ -407,7 +401,7 @@ void ColorToning::read (const ProcParams* pp, const ParamsEdited* pedited) hlColSat->setEditedState (pedited->colorToning.hlColSat ? Edited : UnEdited); shadowsColSat->setEditedState (pedited->colorToning.shadowsColSat ? Edited : UnEdited); - enabled->set_inconsistent (!pedited->colorToning.enabled); + set_inconsistent (multiImage && !pedited->colorToning.enabled); colorShape->setUnChanged (!pedited->colorToning.colorCurve); opacityShape->setUnChanged (!pedited->colorToning.opacityCurve); autosat->set_inconsistent (!pedited->colorToning.autosat); @@ -426,10 +420,7 @@ void ColorToning::read (const ProcParams* pp, const ParamsEdited* pedited) greenhigh->setValue (pp->colorToning.greenhigh); bluehigh->setValue (pp->colorToning.bluehigh); - enaConn.block (true); - enabled->set_active (pp->colorToning.enabled); - enaConn.block (false); - lastEnabled = pp->colorToning.enabled; + setEnabled (pp->colorToning.enabled); autosatConn.block (true); autosat->set_active (pp->colorToning.autosat); @@ -493,7 +484,7 @@ void ColorToning::write (ProcParams* pp, ParamsEdited* pedited) { pp->colorToning.greenhigh = greenhigh->getValue (); pp->colorToning.bluehigh = bluehigh->getValue (); - pp->colorToning.enabled = enabled->get_active(); + pp->colorToning.enabled = getEnabled(); pp->colorToning.colorCurve = colorShape->getCurve (); pp->colorToning.opacityCurve = opacityShape->getCurve (); pp->colorToning.clcurve = clshape->getCurve (); @@ -521,7 +512,7 @@ void ColorToning::write (ProcParams* pp, ParamsEdited* pedited) { pedited->colorToning.method = method->get_active_text()!=M("GENERAL_UNCHANGED"); pedited->colorToning.twocolor = twocolor->get_active_text()!=M("GENERAL_UNCHANGED"); - pedited->colorToning.enabled = !enabled->get_inconsistent(); + pedited->colorToning.enabled = !get_inconsistent(); pedited->colorToning.autosat = !autosat->get_inconsistent(); pedited->colorToning.colorCurve = !colorShape->isUnChanged (); pedited->colorToning.opacityCurve = !opacityShape->isUnChanged (); @@ -569,7 +560,7 @@ void ColorToning::lumamodeChanged () { lastLumamode = lumamode->get_active (); } - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { if (lumamode->get_active ()) listener->panelChanged (EvColorToningLumamode, M("GENERAL_ENABLED")); else @@ -650,7 +641,7 @@ void ColorToning::setAdjusterBehavior (bool splitAdd, bool satThresholdAdd, bool } void ColorToning::adjusterChanged (ThresholdAdjuster* a, double newBottom, double newTop) { - if (listener && enabled->get_active()) + if (listener && getEnabled()) listener->panelChanged (a==hlColSat ? EvColorToningHighights : EvColorToningShadows, Glib::ustring::compose(Glib::ustring(M("TP_COLORTONING_HUE")+": %1"+"\n"+M("TP_COLORTONING_STRENGTH")+": %2"), int(newTop), int(newBottom))); } @@ -692,7 +683,7 @@ bool ColorToning::CTComp_ () { void ColorToning::adjusterChanged (Adjuster* a, double newval) { - if (!listener || !enabled->get_active()) + if (!listener || !getEnabled()) return; if (a==redlow) @@ -775,7 +766,7 @@ void ColorToning::twocolorChanged (bool changedbymethod) { } } - if (listener && enabled->get_active () && !changedbymethod) + if (listener && getEnabled() && !changedbymethod) listener->panelChanged (EvColorToningTwocolor, twocolor->get_active_text ()); } @@ -948,7 +939,7 @@ void ColorToning::methodChanged () { } } - if (listener && enabled->get_active ()) + if (listener && getEnabled()) listener->panelChanged (EvColorToningMethod, method->get_active_text ()); } @@ -1005,7 +996,7 @@ void ColorToning::colorForValue (double valX, double valY, enum ColorCaller::Ele void ColorToning::curveChanged (CurveEditor* ce) { - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { if (ce == colorShape) listener->panelChanged (EvColorToningColor, M("HISTORY_CUSTOMCURVE")); else if (ce == opacityShape) @@ -1019,20 +1010,10 @@ void ColorToning::curveChanged (CurveEditor* ce) { void ColorToning::enabledChanged () { - if (batchMode) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaConn.block (true); - enabled->set_active (false); - enaConn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } if (listener) { - if (enabled->get_active()) + if (get_inconsistent()) + listener->panelChanged (EvColorToningEnabled, M("GENERAL_UNCHANGED")); + else if (getEnabled()) listener->panelChanged (EvColorToningEnabled, M("GENERAL_ENABLED")); else listener->panelChanged (EvColorToningEnabled, M("GENERAL_DISABLED")); @@ -1054,21 +1035,18 @@ void ColorToning::autosatChanged () { lastautosat = autosat->get_active (); } if (listener) { - if (autosat->get_active()) - {if (enabled->get_active()) + if (autosat->get_active()) { + if (getEnabled()) listener->panelChanged (EvColorToningautosat, M("GENERAL_ENABLED")); saturatedOpacity->set_sensitive(false); satProtectionThreshold->set_sensitive(false); - - } - - else - {if (enabled->get_active()) + } + else { + if (getEnabled()) listener->panelChanged (EvColorToningautosat, M("GENERAL_DISABLED")); saturatedOpacity->set_sensitive(true); satProtectionThreshold->set_sensitive(true); - - } + } } } diff --git a/rtgui/colortoning.h b/rtgui/colortoning.h index 83f46b1c6..b15597d06 100644 --- a/rtgui/colortoning.h +++ b/rtgui/colortoning.h @@ -17,7 +17,6 @@ class ColorToning : public ToolParamBlock, public FoldableToolPanel, public rte public ThresholdAdjusterListener, public AdjusterListener { protected: - Gtk::CheckButton* enabled; //Gtk::HSeparator* splitSep; Gtk::HSeparator* satLimiterSep; Gtk::HSeparator* colorSep; @@ -68,8 +67,6 @@ class ColorToning : public ToolParamBlock, public FoldableToolPanel, public rte int nextsatpr; Glib::ustring nextbalcolor; Glib::ustring balcolor; - bool lastEnabled; - sigc::connection enaConn; bool lasttwocolor; sigc::connection neutralconn, twocconn; //, neutralcurvesconn; bool lastautosat; diff --git a/rtgui/crop.cc b/rtgui/crop.cc index 20706bc3a..489bcde11 100644 --- a/rtgui/crop.cc +++ b/rtgui/crop.cc @@ -34,19 +34,13 @@ class RefreshSpinHelper { : crop(_crop), notify(_notify) {} }; -Crop::Crop (): FoldableToolPanel(this) { +Crop::Crop (): FoldableToolPanel(this, "crop", M("TP_CROP_LABEL"), false, true) { clistener = NULL; maxw = 3000; maxh = 2000; - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_active (false); - pack_start(*enabled); - - pack_start(*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_EXPAND_WIDGET, 4); - Gtk::HBox* hb1 = Gtk::manage (new Gtk::HBox ()); hb1->pack_start (*Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("TP_CROP_X") +": "))); @@ -218,7 +212,6 @@ Crop::Crop (): FoldableToolPanel(this) { yconn = y->signal_value_changed().connect ( sigc::mem_fun(*this, &Crop::positionChanged), true); wconn = w->signal_value_changed().connect ( sigc::mem_fun(*this, &Crop::widthChanged), true); hconn = h->signal_value_changed().connect ( sigc::mem_fun(*this, &Crop::heightChanged), true); - econn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &Crop::enabledChanged) ); fconn = fixr->signal_toggled().connect( sigc::mem_fun(*this, &Crop::ratioFixedChanged) ); rconn = ratio->signal_changed().connect( sigc::mem_fun(*this, &Crop::ratioChanged) ); oconn = orientation->signal_changed().connect( sigc::mem_fun(*this, &Crop::ratioChanged) ); @@ -255,11 +248,10 @@ void Crop::read (const ProcParams* pp, const ParamsEdited* pedited) { hconn.block (true); rconn.block (true); fconn.block (true); - econn.block (true); oconn.block (true); gconn.block (true); - enabled->set_active (pp->crop.enabled); + setEnabled(pp->crop.enabled); // check if the new values are larger than the maximum double tmp, maxw, maxh; @@ -326,11 +318,10 @@ void Crop::read (const ProcParams* pp, const ParamsEdited* pedited) { orientation->set_active_text (M("GENERAL_UNCHANGED")); if (!pedited->crop.guide) guide->set_active_text (M("GENERAL_UNCHANGED")); - enabled->set_inconsistent (!pedited->crop.enabled); + set_inconsistent (multiImage && !pedited->crop.enabled); fixr->set_inconsistent (!pedited->crop.fixratio); } - lastEnabled = pp->crop.enabled; lastFixRatio = pp->crop.fixratio; xconn.block (false); @@ -339,7 +330,6 @@ void Crop::read (const ProcParams* pp, const ParamsEdited* pedited) { hconn.block (false); rconn.block (false); fconn.block (false); - econn.block (false); oconn.block (false); gconn.block (false); @@ -348,7 +338,7 @@ void Crop::read (const ProcParams* pp, const ParamsEdited* pedited) { void Crop::write (ProcParams* pp, ParamsEdited* pedited) { - pp->crop.enabled = enabled->get_active (); + pp->crop.enabled = getEnabled (); pp->crop.x = nx; pp->crop.y = ny; pp->crop.w = nw; @@ -385,7 +375,7 @@ void Crop::write (ProcParams* pp, ParamsEdited* pedited) { pp->crop.guide = "ePassport"; if (pedited) { - pedited->crop.enabled = !enabled->get_inconsistent(); + pedited->crop.enabled = !get_inconsistent(); pedited->crop.ratio = ratio->get_active_text() != M("GENERAL_UNCHANGED"); pedited->crop.orientation = orientation->get_active_text() != M("GENERAL_UNCHANGED"); pedited->crop.guide = guide->get_active_text() != M("GENERAL_UNCHANGED"); @@ -445,13 +435,11 @@ void Crop::selectPressed () { void Crop::notifyListener () { - if (listener && enabled->get_active ()) + if (listener && getEnabled ()) if (nw == 1 && nh == 1) { - econn.block (true); - enabled->set_active (false); - econn.block (false); + setEnabled(false); nx = (int)x->get_value (); - ny = (int)x->get_value (); + ny = (int)y->get_value (); nw = (int)w->get_value (); nh = (int)h->get_value (); listener->panelChanged (EvCrop, M("GENERAL_DISABLED")); @@ -462,22 +450,11 @@ void Crop::notifyListener () { void Crop::enabledChanged () { - if (batchMode) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - econn.block (true); - enabled->set_active (false); - econn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } - if (listener) { - if (enabled->get_active ()) - listener->panelChanged (EvCrop, Glib::ustring::compose ("%1=%2, %3=%4\n%5=%6, %7=%8", M("TP_CROP_X"), nx, M("TP_CROP_Y"), ny, M("TP_CROP_W"), nw, M("TP_CROP_H"), nh)); + if (get_inconsistent()) + listener->panelChanged (EvCrop, M("GENERAL_UNCHANGED")); + else if (getEnabled()) + listener->panelChanged (EvCrop, M("GENERAL_ENABLED")); else listener->panelChanged (EvCrop, M("GENERAL_DISABLED")); } @@ -668,7 +645,7 @@ void Crop::setDimensions (int mw, int mh) { if (!wconnWasBlocked) wconn.block (false); if (!hconnWasBlocked) hconn.block (false); - if (enabled->get_active()==false) { + if (!getEnabled()) { nx = 0; ny = 0; nw = mw; @@ -961,9 +938,7 @@ void Crop::cropInit (int &x, int &y, int &w, int &h) { w = 1; h = 1; - econn.block (true); - enabled->set_active (1); - econn.block (false); + setEnabled(true); } void Crop::cropResized (int &x, int &y, int& x2, int& y2) { diff --git a/rtgui/crop.h b/rtgui/crop.h index 747f60754..40bb1877b 100644 --- a/rtgui/crop.h +++ b/rtgui/crop.h @@ -41,7 +41,6 @@ class CropRatio { class Crop : public ToolParamBlock, public CropGUIListener, public FoldableToolPanel, public rtengine::SizeListener { protected: - Gtk::CheckButton* enabled; Gtk::CheckButton* fixr; MyComboBoxText* ratio; MyComboBoxText* orientation; @@ -62,8 +61,8 @@ class Crop : public ToolParamBlock, public CropGUIListener, public FoldableToolP double nx, ny; int nw, nh; int lastRotationDeg; - sigc::connection xconn, yconn, wconn, hconn, econn, fconn, rconn, oconn, gconn; - bool wDirty, hDirty, xDirty, yDirty, lastEnabled, lastFixRatio; + sigc::connection xconn, yconn, wconn, hconn, fconn, rconn, oconn, gconn; + bool wDirty, hDirty, xDirty, yDirty, lastFixRatio; void adjustCropToRatio(); std::vector cropratio; diff --git a/rtgui/darkframe.cc b/rtgui/darkframe.cc index ee3975bf9..a6c59d58a 100644 --- a/rtgui/darkframe.cc +++ b/rtgui/darkframe.cc @@ -26,7 +26,7 @@ using namespace rtengine; using namespace rtengine::procparams; -DarkFrame::DarkFrame () : FoldableToolPanel(this) +DarkFrame::DarkFrame () : FoldableToolPanel(this, "darkframe", M("TP_DARKFRAME_LABEL")) { hbdf = Gtk::manage(new Gtk::HBox()); hbdf->set_spacing(4); diff --git a/rtgui/defringe.cc b/rtgui/defringe.cc index ebb6e7282..18c877249 100644 --- a/rtgui/defringe.cc +++ b/rtgui/defringe.cc @@ -23,7 +23,7 @@ using namespace rtengine; using namespace rtengine::procparams; -Defringe::Defringe () : FoldableToolPanel(this) { +Defringe::Defringe () : FoldableToolPanel(this, "defringe", M("TP_DEFRINGE_LABEL"), true, true) { std::vector bottomMilestones; float R, G, B; @@ -32,17 +32,8 @@ Defringe::Defringe () : FoldableToolPanel(this) { Color::hsv2rgb01(x, 0.5f, 0.5f, R, G, B); bottomMilestones.push_back( GradientMilestone(double(x), double(R), double(G), double(B)) ); } - - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_active (false); - enabled->set_tooltip_markup (M("TP_SHARPENING_TOOLTIP")); - // enabled->show (); - pack_start (*enabled); - - Gtk::HSeparator *hsep1 = Gtk::manage (new Gtk::HSeparator()); - hsep1->show (); - pack_start (*hsep1); + setEnabledTooltipMarkup(M("TP_SHARPENING_TOOLTIP")); curveEditorPF = new CurveEditorGroup (options.lastPFCurvesDir); curveEditorPF->setCurveListener (this); @@ -52,7 +43,6 @@ Defringe::Defringe () : FoldableToolPanel(this) { chshape->setBottomBarBgGradient(bottomMilestones); chshape->setCurveColorProvider(this, 1); - enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &Defringe::enabledChanged) ); //edgConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &Defringe::edgeChanged) ); radius = Gtk::manage (new Adjuster (M("TP_DEFRINGE_RADIUS"), 0.5, 5.0, 0.1, 2.0)); @@ -97,15 +87,11 @@ void Defringe::read (const ProcParams* pp, const ParamsEdited* pedited) { if (pedited) { radius->setEditedState ( pedited->defringe.radius ? Edited : UnEdited); threshold->setEditedState ( pedited->defringe.threshold ? Edited : UnEdited); - enabled->set_inconsistent (!pedited->defringe.enabled); + set_inconsistent (multiImage && !pedited->defringe.enabled); chshape->setUnChanged (!pedited->defringe.huecurve); } - enaConn.block (true); - enabled->set_active (pp->defringe.enabled); - enaConn.block (false); - - lastEnabled = pp->defringe.enabled; + setEnabled(pp->defringe.enabled); radius->setValue (pp->defringe.radius); threshold->setValue (pp->defringe.threshold); @@ -124,13 +110,13 @@ void Defringe::write (ProcParams* pp, ParamsEdited* pedited) { pp->defringe.radius = radius->getValue (); pp->defringe.threshold = (int)threshold->getValue (); - pp->defringe.enabled = enabled->get_active(); + pp->defringe.enabled = getEnabled(); pp->defringe.huecurve = chshape->getCurve (); if (pedited) { pedited->defringe.radius = radius->getEditedState (); pedited->defringe.threshold = threshold->getEditedState (); - pedited->defringe.enabled = !enabled->get_inconsistent(); + pedited->defringe.enabled = !get_inconsistent(); pedited->defringe.huecurve = !chshape->isUnChanged (); } } @@ -151,12 +137,12 @@ void Defringe::setDefaults (const ProcParams* defParams, const ParamsEdited* ped } void Defringe::curveChanged () { - if (listener && enabled->get_active()) listener->panelChanged (EvPFCurve, M("HISTORY_CUSTOMCURVE")); + if (listener && getEnabled()) listener->panelChanged (EvPFCurve, M("HISTORY_CUSTOMCURVE")); } void Defringe::adjusterChanged (Adjuster* a, double newval) { - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { if (a==radius) listener->panelChanged (EvDefringeRadius, Glib::ustring::format (std::setw(2), std::fixed, std::setprecision(1), a->getValue())); @@ -167,25 +153,14 @@ void Defringe::adjusterChanged (Adjuster* a, double newval) { void Defringe::enabledChanged () { - if (batchMode) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaConn.block (true); - enabled->set_active (false); - enaConn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } - if (listener) { - if (enabled->get_active ()) + if (get_inconsistent()) + listener->panelChanged (EvDefringeEnabled, M("GENERAL_UNCHANGED")); + else if (getEnabled()) listener->panelChanged (EvDefringeEnabled, M("GENERAL_ENABLED")); else listener->panelChanged (EvDefringeEnabled, M("GENERAL_DISABLED")); - } + } } void Defringe::setBatchMode (bool batchMode) { diff --git a/rtgui/defringe.h b/rtgui/defringe.h index ba4dba66b..fb84e86c0 100644 --- a/rtgui/defringe.h +++ b/rtgui/defringe.h @@ -35,9 +35,6 @@ class Defringe : public ToolParamBlock, public AdjusterListener, public Foldable Adjuster* radius; Adjuster* threshold; - Gtk::CheckButton* enabled; - bool lastEnabled; - sigc::connection enaConn; bool edges; public: diff --git a/rtgui/dirpyrdenoise.cc b/rtgui/dirpyrdenoise.cc index c4b388e2e..3c0acbcd2 100644 --- a/rtgui/dirpyrdenoise.cc +++ b/rtgui/dirpyrdenoise.cc @@ -26,7 +26,7 @@ using namespace rtengine; using namespace rtengine::procparams; extern Options options; -DirPyrDenoise::DirPyrDenoise () : FoldableToolPanel(this), lastenhance(false) { +DirPyrDenoise::DirPyrDenoise () : FoldableToolPanel(this, "dirpyrdenoise", M("TP_DIRPYRDENOISE_LABEL"), true, true), lastenhance(false) { std::vector milestones; CurveListener::setMulti(true); nextnresid=0.; @@ -35,18 +35,8 @@ DirPyrDenoise::DirPyrDenoise () : FoldableToolPanel(this), lastenhance(false) { nextred=0.; nextblue=0.; - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_tooltip_text (M("TP_DIRPYRDENOISE_ENABLED_TOOLTIP")); - - enabled->set_active (false); - enabled->show (); - pack_start (*enabled); - - Gtk::HSeparator *hsep1 = Gtk::manage (new Gtk::HSeparator()); - hsep1->show (); - pack_start (*hsep1); - - enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &DirPyrDenoise::enabledChanged) ); + setEnabledTooltipMarkup(M("TP_DIRPYRDENOISE_ENABLED_TOOLTIP")); + std::vector defaultCurve; Gtk::Frame* lumaFrame = Gtk::manage (new Gtk::Frame (M("TP_DIRPYRDENOISE_LUMAFR")) ); @@ -484,7 +474,6 @@ void DirPyrDenoise::read (const ProcParams* pp, const ParamsEdited* pedited) { Cmethodconn.block(true); C2methodconn.block(true); smethodconn.block(true); - enaConn.block (true); autochromaConn.block(true); medmethodconn.block(true); rgbmethodconn.block(true); @@ -604,30 +593,29 @@ void DirPyrDenoise::read (const ProcParams* pp, const ParamsEdited* pedited) { if (!pedited->dirpyrDenoise.Lmethod) Lmethod->set_active (2); - luma->setEditedState (pedited->dirpyrDenoise.luma ? Edited : UnEdited); - Ldetail->setEditedState (pedited->dirpyrDenoise.Ldetail ? Edited : UnEdited); - chroma->setEditedState (pedited->dirpyrDenoise.chroma ? Edited : UnEdited); + luma->setEditedState (pedited->dirpyrDenoise.luma ? Edited : UnEdited); + Ldetail->setEditedState (pedited->dirpyrDenoise.Ldetail ? Edited : UnEdited); + chroma->setEditedState (pedited->dirpyrDenoise.chroma ? Edited : UnEdited); redchro->setEditedState (pedited->dirpyrDenoise.redchro ? Edited : UnEdited); - bluechro->setEditedState (pedited->dirpyrDenoise.bluechro ? Edited : UnEdited); + bluechro->setEditedState (pedited->dirpyrDenoise.bluechro ? Edited : UnEdited); - gamma->setEditedState (pedited->dirpyrDenoise.gamma ? Edited : UnEdited); + gamma->setEditedState (pedited->dirpyrDenoise.gamma ? Edited : UnEdited); passes->setEditedState (pedited->dirpyrDenoise.passes ? Edited : UnEdited); - enabled->set_inconsistent (!pedited->dirpyrDenoise.enabled); - enhance->set_inconsistent (!pedited->dirpyrDenoise.enhance); - median->set_inconsistent (!pedited->dirpyrDenoise.median); - ccshape->setUnChanged (!pedited->dirpyrDenoise.cccurve); - + set_inconsistent (multiImage && !pedited->dirpyrDenoise.enabled); + enhance->set_inconsistent (!pedited->dirpyrDenoise.enhance); + median->set_inconsistent (!pedited->dirpyrDenoise.median); + ccshape->setUnChanged (!pedited->dirpyrDenoise.cccurve); + // perform->set_inconsistent (!pedited->dirpyrDenoise.perform); } // perfconn.block (true); - enabled->set_active (pp->dirpyrDenoise.enabled); + setEnabled(pp->dirpyrDenoise.enabled); enhance->set_active (pp->dirpyrDenoise.enhance); // perform->set_active (pp->dirpyrDenoise.perform); median->set_active (pp->dirpyrDenoise.median); autochroma->set_active (pp->dirpyrDenoise.autochroma); // perfconn.block (false); - lastEnabled = pp->dirpyrDenoise.enabled; lastmedian = pp->dirpyrDenoise.median; lastautochroma = pp->dirpyrDenoise.autochroma; lastenhance = pp->dirpyrDenoise.enhance; @@ -643,7 +631,6 @@ void DirPyrDenoise::read (const ProcParams* pp, const ParamsEdited* pedited) { lshape->setCurve (pp->dirpyrDenoise.lcurve); ccshape->setCurve (pp->dirpyrDenoise.cccurve); - enaConn.block (false); autochromaConn.block(false); dmethodconn.block(false); @@ -677,7 +664,7 @@ void DirPyrDenoise::write (ProcParams* pp, ParamsEdited* pedited) { pp->dirpyrDenoise.bluechro = bluechro->getValue (); pp->dirpyrDenoise.gamma = gamma->getValue (); pp->dirpyrDenoise.passes = passes->getValue (); - pp->dirpyrDenoise.enabled = enabled->get_active(); + pp->dirpyrDenoise.enabled = getEnabled(); pp->dirpyrDenoise.enhance = enhance->get_active(); // pp->dirpyrDenoise.perform = perform->get_active(); pp->dirpyrDenoise.median = median->get_active(); @@ -701,7 +688,7 @@ void DirPyrDenoise::write (ProcParams* pp, ParamsEdited* pedited) { pedited->dirpyrDenoise.bluechro = bluechro->getEditedState (); pedited->dirpyrDenoise.gamma = gamma->getEditedState (); pedited->dirpyrDenoise.passes = passes->getEditedState (); - pedited->dirpyrDenoise.enabled = !enabled->get_inconsistent(); + pedited->dirpyrDenoise.enabled = !get_inconsistent(); pedited->dirpyrDenoise.enhance = !enhance->get_inconsistent(); pedited->dirpyrDenoise.median = !median->get_inconsistent(); pedited->dirpyrDenoise.autochroma = !autochroma->get_inconsistent(); @@ -790,7 +777,7 @@ void DirPyrDenoise::write (ProcParams* pp, ParamsEdited* pedited) { void DirPyrDenoise::curveChanged (CurveEditor* ce) { - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { if (ce == lshape) listener->panelChanged (EvDPDNLCurve, M("HISTORY_CUSTOMCURVE")); if (ce == ccshape) @@ -800,7 +787,7 @@ void DirPyrDenoise::curveChanged (CurveEditor* ce) { void DirPyrDenoise::dmethodChanged () { - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvDPDNmet, dmethod->get_active_text ()); } } @@ -815,7 +802,7 @@ void DirPyrDenoise::LmethodChanged () { NoiscurveEditorG->hide(); } } - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvDPDNLmet, Lmethod->get_active_text ()); } } @@ -872,7 +859,7 @@ void DirPyrDenoise::CmethodChanged () { } } - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvDPDNCmet, Cmethod->get_active_text ()); } } @@ -918,7 +905,7 @@ void DirPyrDenoise::C2methodChanged () { } - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvDPDNC2met, C2method->get_active_text ()); } } @@ -926,7 +913,7 @@ void DirPyrDenoise::C2methodChanged () { void DirPyrDenoise::smethodChanged () { - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvDPDNsmet, smethod->get_active_text ()); } } @@ -934,7 +921,7 @@ void DirPyrDenoise::smethodChanged () { void DirPyrDenoise::medmethodChanged () { - if (listener && (multiImage||enabled->get_active()) && median->get_active() ) { + if (listener && (multiImage||getEnabled()) && median->get_active() ) { listener->panelChanged (EvDPDNmedmet, medmethod->get_active_text ()); } } @@ -942,7 +929,7 @@ void DirPyrDenoise::medmethodChanged () { void DirPyrDenoise::rgbmethodChanged () { ctboxrgb->hide(); if(methodmed->get_active_row_number()==4) ctboxrgb->show(); - if (listener && (multiImage||enabled->get_active()) && median->get_active()) { + if (listener && (multiImage||getEnabled()) && median->get_active()) { listener->panelChanged (EvDPDNrgbmet, rgbmethod->get_active_text ()); } } @@ -953,7 +940,7 @@ void DirPyrDenoise::methodmedChanged () { if(methodmed->get_active_row_number()==4) {ctboxrgb->show();ctbox->hide();} else {ctboxrgb->hide();ctbox->show();} - if (listener && (multiImage||enabled->get_active()) && median->get_active()) { + if (listener && (multiImage||getEnabled()) && median->get_active()) { listener->panelChanged (EvDPDNmetmed, methodmed->get_active_text ()); } } @@ -993,7 +980,7 @@ void DirPyrDenoise::adjusterChanged (Adjuster* a, double newval) { Glib::ustring costr; costr = Glib::ustring::format (std::setw(3), std::fixed, std::setprecision(2), a->getValue()); - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { if (a==Ldetail) listener->panelChanged (EvDPDNLdetail, costr); else if (a==luma) @@ -1012,26 +999,15 @@ void DirPyrDenoise::adjusterChanged (Adjuster* a, double newval) { } void DirPyrDenoise::enabledChanged () { - - if (batchMode) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaConn.block (true); - enabled->set_active (false); - enaConn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } - + if (listener) { - if (enabled->get_active ()) + if (get_inconsistent()) + listener->panelChanged (EvDPDNEnabled, M("GENERAL_UNCHANGED")); + else if (getEnabled()) listener->panelChanged (EvDPDNEnabled, M("GENERAL_ENABLED")); else listener->panelChanged (EvDPDNEnabled, M("GENERAL_DISABLED")); - } + } } void DirPyrDenoise::enhanceChanged () { diff --git a/rtgui/dirpyrdenoise.h b/rtgui/dirpyrdenoise.h index 92843231a..ecfb91f37 100644 --- a/rtgui/dirpyrdenoise.h +++ b/rtgui/dirpyrdenoise.h @@ -43,9 +43,6 @@ class DirPyrDenoise : public ToolParamBlock, public AdjusterListener, public Fol FlatCurveEditor* lshape; FlatCurveEditor* ccshape; - Gtk::CheckButton* enabled; - bool lastEnabled; - sigc::connection enaConn; Gtk::CheckButton* enhance; bool lastenhance; sigc::connection enhanConn, medianConn, autochromaConn; diff --git a/rtgui/dirpyrequalizer.cc b/rtgui/dirpyrequalizer.cc index 67ea468fa..b360a2b84 100644 --- a/rtgui/dirpyrequalizer.cc +++ b/rtgui/dirpyrequalizer.cc @@ -22,7 +22,7 @@ using namespace rtengine; using namespace rtengine::procparams; -DirPyrEqualizer::DirPyrEqualizer () : FoldableToolPanel(this) { +DirPyrEqualizer::DirPyrEqualizer () : FoldableToolPanel(this, "dirpyrequalizer", M("TP_DIRPYREQUALIZER_LABEL"), true, true) { std::vector milestones; @@ -39,15 +39,8 @@ DirPyrEqualizer::DirPyrEqualizer () : FoldableToolPanel(this) { Color::hsv2rgb01(0.2650, 0.5, 0.5, r, g, b); milestones.push_back( GradientMilestone(0.8824, r, g, b) ); // hsv: 0.265 rad: 2.1 Color::hsv2rgb01(0.3240, 0.5, 0.5, r, g, b); milestones.push_back( GradientMilestone(1. , r, g, b) ); // hsv: 0.324 rad: 2.5 - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_active (true); - pack_start(*enabled); - enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &DirPyrEqualizer::enabledToggled) ); - enabled->set_tooltip_markup (M("TP_SHARPENING_TOOLTIP")); + setEnabledTooltipMarkup(M("TP_SHARPENING_TOOLTIP")); - Gtk::HSeparator *separator1 = Gtk::manage (new Gtk::HSeparator()); - pack_start(*separator1, Gtk::PACK_SHRINK, 2); - Gtk::HBox * buttonBox1 = Gtk::manage (new Gtk::HBox()); pack_start(*buttonBox1, Gtk::PACK_SHRINK, 2); @@ -138,7 +131,7 @@ void DirPyrEqualizer::read (const ProcParams* pp, const ParamsEdited* pedited) { if (pedited) { - enabled->set_inconsistent (!pedited->dirpyrequalizer.enabled); + set_inconsistent (multiImage && !pedited->dirpyrequalizer.enabled); gamutlab->set_inconsistent (!pedited->dirpyrequalizer.gamutlab); for(int i = 0; i < 6; i++) { @@ -149,10 +142,8 @@ void DirPyrEqualizer::read (const ProcParams* pp, const ParamsEdited* pedited) { hueskin->setEditedState (pedited->dirpyrequalizer.hueskin ? Edited : UnEdited); } - enaConn.block (true); - enabled->set_active (pp->dirpyrequalizer.enabled); - enaConn.block (false); - lastEnabled = pp->dirpyrequalizer.enabled; + setEnabled(pp->dirpyrequalizer.enabled); + /* algoconn.block(true); if (pedited && !pedited->dirpyrequalizer.algo) @@ -181,7 +172,7 @@ void DirPyrEqualizer::read (const ProcParams* pp, const ParamsEdited* pedited) { void DirPyrEqualizer::write (ProcParams* pp, ParamsEdited* pedited) { - pp->dirpyrequalizer.enabled = enabled->get_active (); + pp->dirpyrequalizer.enabled = getEnabled(); pp->dirpyrequalizer.gamutlab = gamutlab->get_active (); pp->dirpyrequalizer.hueskin = hueskin->getValue (); @@ -193,7 +184,7 @@ void DirPyrEqualizer::write (ProcParams* pp, ParamsEdited* pedited) { if (pedited) { - pedited->dirpyrequalizer.enabled = !enabled->get_inconsistent(); + pedited->dirpyrequalizer.enabled = !get_inconsistent(); pedited->dirpyrequalizer.hueskin = hueskin->getEditedState (); for(int i = 0; i < 6; i++) { @@ -242,7 +233,7 @@ void DirPyrEqualizer::setDefaults (const ProcParams* defParams, const ParamsEdit } void DirPyrEqualizer::adjusterChanged (ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight) { - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvDirPyrEqualizerHueskin, hueskin->getHistoryString()); } } @@ -263,7 +254,7 @@ void DirPyrEqualizer::setBatchMode (bool batchMode) { void DirPyrEqualizer::adjusterChanged (Adjuster* a, double newval) { - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { if (a == threshold) { listener->panelChanged (EvDirPyrEqualizerThreshold, Glib::ustring::compose("%1", @@ -290,23 +281,12 @@ void DirPyrEqualizer::adjusterChanged (Adjuster* a, double newval) { } } -void DirPyrEqualizer::enabledToggled () { - - if (batchMode) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaConn.block (true); - enabled->set_active (false); - enaConn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } +void DirPyrEqualizer::enabledChanged () { if (listener) { - if (enabled->get_active ()) + if (get_inconsistent()) + listener->panelChanged (EvDirPyrEqlEnabled, M("GENERAL_UNCHANGED")); + else if (getEnabled()) listener->panelChanged (EvDirPyrEqlEnabled, M("GENERAL_ENABLED")); else listener->panelChanged (EvDirPyrEqlEnabled, M("GENERAL_DISABLED")); diff --git a/rtgui/dirpyrequalizer.h b/rtgui/dirpyrequalizer.h index 86a6b996a..3b5227331 100644 --- a/rtgui/dirpyrequalizer.h +++ b/rtgui/dirpyrequalizer.h @@ -31,7 +31,6 @@ class DirPyrEqualizer : public ToolParamBlock, public ThresholdAdjusterListener, protected: - Gtk::CheckButton * enabled; Gtk::CheckButton * gamutlab; Adjuster* multiplier[6]; Adjuster* threshold; @@ -42,12 +41,12 @@ protected: // Gtk::Label* alLabel; // Gtk::HBox* algoHBox; - sigc::connection enaConn, gamutlabConn; + sigc::connection gamutlabConn; sigc::connection lumaneutralPressedConn; sigc::connection lumacontrastPlusPressedConn; sigc::connection lumacontrastMinusPressedConn; - bool lastEnabled, lastgamutlab; + bool lastgamutlab; public: @@ -64,7 +63,7 @@ public: // void algoChanged (); void adjusterChanged (Adjuster* a, double newval); - void enabledToggled (); + void enabledChanged(); void gamutlabToggled (); void lumaneutralPressed (); void lumacontrastPlusPressed (); diff --git a/rtgui/distortion.cc b/rtgui/distortion.cc index f7b5bd34b..79116c7e1 100644 --- a/rtgui/distortion.cc +++ b/rtgui/distortion.cc @@ -23,7 +23,7 @@ using namespace rtengine; using namespace rtengine::procparams; -Distortion::Distortion (): FoldableToolPanel(this) { +Distortion::Distortion (): FoldableToolPanel(this, "distortion", M("TP_DISTORTION_LABEL")) { rlistener = NULL; autoDistor = Gtk::manage (new Gtk::Button (M("TP_DISTORTION_AUTO"))); diff --git a/rtgui/epd.cc b/rtgui/epd.cc index cdf10280c..e9ebba139 100644 --- a/rtgui/epd.cc +++ b/rtgui/epd.cc @@ -23,19 +23,9 @@ using namespace rtengine; using namespace rtengine::procparams; -EdgePreservingDecompositionUI::EdgePreservingDecompositionUI () : FoldableToolPanel(this){ +EdgePreservingDecompositionUI::EdgePreservingDecompositionUI () : FoldableToolPanel(this, "epd", M("TP_EPD_LABEL"), true, true) { - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_active (false); - enabled->set_tooltip_markup (M("TP_EPD_TOOLTIP")); - enabled->show (); - pack_start (*enabled); - - Gtk::HSeparator *hsep1 = Gtk::manage (new Gtk::HSeparator()); - hsep1->show (); - pack_start (*hsep1); - - enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &EdgePreservingDecompositionUI::enabledChanged) ); + setEnabledTooltipMarkup(M("TP_EPD_TOOLTIP")); strength = Gtk::manage(new Adjuster (M("TP_EPD_STRENGTH"), -2.0, 2.0, 0.01, 0.25)); edgeStopping = Gtk::manage(new Adjuster (M("TP_EPD_EDGESTOPPING"), 0.1, 4.0, 0.01, 1.4)); @@ -66,15 +56,10 @@ void EdgePreservingDecompositionUI::read(const ProcParams *pp, const ParamsEdite edgeStopping->setEditedState(pedited->epd.edgeStopping ? Edited : UnEdited); scale->setEditedState(pedited->epd.scale ? Edited : UnEdited); reweightingIterates->setEditedState(pedited->epd.reweightingIterates ? Edited : UnEdited); - - enabled->set_inconsistent(!pedited->epd.enabled); + set_inconsistent(multiImage && !pedited->epd.enabled); } - enaConn.block(true); - enabled->set_active(pp->epd.enabled); - enaConn.block (false); - - lastEnabled = pp->epd.enabled; + setEnabled(pp->epd.enabled); strength->setValue(pp->epd.strength); edgeStopping->setValue(pp->epd.edgeStopping); @@ -89,14 +74,14 @@ void EdgePreservingDecompositionUI::write(ProcParams *pp, ParamsEdited *pedited) pp->epd.edgeStopping = edgeStopping->getValue(); pp->epd.scale = scale->getValue(); pp->epd.reweightingIterates = reweightingIterates->getValue(); - pp->epd.enabled = enabled->get_active(); + pp->epd.enabled = getEnabled(); if(pedited){ pedited->epd.strength = strength->getEditedState(); pedited->epd.edgeStopping = edgeStopping->getEditedState(); pedited->epd.scale = scale->getEditedState(); pedited->epd.reweightingIterates = reweightingIterates->getEditedState(); - pedited->epd.enabled = !enabled->get_inconsistent(); + pedited->epd.enabled = !get_inconsistent(); } } @@ -120,7 +105,7 @@ void EdgePreservingDecompositionUI::setDefaults(const ProcParams *defParams, con } void EdgePreservingDecompositionUI::adjusterChanged(Adjuster* a, double newval){ - if(listener && enabled->get_active()){ + if(listener && getEnabled()){ if(a == strength) listener->panelChanged(EvEPDStrength, Glib::ustring::format(std::setw(2), std::fixed, std::setprecision(2), a->getValue())); else if(a == edgeStopping) @@ -132,22 +117,11 @@ void EdgePreservingDecompositionUI::adjusterChanged(Adjuster* a, double newval){ } } -void EdgePreservingDecompositionUI::enabledChanged(){ - if(batchMode){ - if(enabled->get_inconsistent()){ - enabled->set_inconsistent (false); - enaConn.block (true); - enabled->set_active (false); - enaConn.block (false); - } - else if(lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } - - if(listener){ - if(enabled->get_active ()) +void EdgePreservingDecompositionUI::enabledChanged () { + if (listener) { + if (get_inconsistent()) + listener->panelChanged (EvEPDEnabled, M("GENERAL_UNCHANGED")); + else if (getEnabled()) listener->panelChanged (EvEPDEnabled, M("GENERAL_ENABLED")); else listener->panelChanged (EvEPDEnabled, M("GENERAL_DISABLED")); diff --git a/rtgui/epd.h b/rtgui/epd.h index 37dfa1a37..c4bb0545e 100644 --- a/rtgui/epd.h +++ b/rtgui/epd.h @@ -30,10 +30,6 @@ protected: Adjuster *scale; Adjuster *reweightingIterates; - Gtk::CheckButton* enabled; - bool lastEnabled; - sigc::connection enaConn; - public: EdgePreservingDecompositionUI(); @@ -44,7 +40,7 @@ public: void setBatchMode (bool batchMode); void adjusterChanged (Adjuster* a, double newval); - void enabledChanged (); + void enabledChanged (); }; #endif diff --git a/rtgui/filmsimulation.cc b/rtgui/filmsimulation.cc index 553432e7f..4e63d7058 100644 --- a/rtgui/filmsimulation.cc +++ b/rtgui/filmsimulation.cc @@ -9,19 +9,8 @@ using namespace rtengine::procparams; typedef std::vector Strings; FilmSimulation::FilmSimulation() -: FoldableToolPanel( this ), - m_lastEnabled( false ) +: FoldableToolPanel( this, "filmsimulation", M("TP_FILMSIMULATION_LABEL"), false, true ) { - m_enabled = Gtk::manage ( new Gtk::CheckButton( M("GENERAL_ENABLED") ) ); - m_enabled->set_active( false ); - - pack_start( *m_enabled, Gtk::PACK_SHRINK, 0 ); - - m_enabled->show(); - m_enabledConn = m_enabled->signal_toggled().connect( sigc::mem_fun( *this, &FilmSimulation::onEnabledToggled ) ); - - pack_start( *Gtk::manage ( new Gtk::HSeparator() ) ); - m_clutComboBox = Gtk::manage( new ClutComboBox() ); int foundClutsCount = m_clutComboBox->fillFromDir( options.clutsDir ); if ( foundClutsCount == 0 ) @@ -42,7 +31,7 @@ void FilmSimulation::onClutSelected() { Glib::ustring currentClutFilename = m_clutComboBox->getSelectedClut(); - if ( m_enabled->get_active() && !currentClutFilename.empty() && listener && currentClutFilename != m_oldClutFilename ) + if ( getEnabled() && !currentClutFilename.empty() && listener && currentClutFilename != m_oldClutFilename ) { Glib::ustring clutName, dummy; splitClutFilename( currentClutFilename, clutName, dummy, dummy ); @@ -52,27 +41,12 @@ void FilmSimulation::onClutSelected() } } -void FilmSimulation::onEnabledToggled() -{ - if (multiImage) - { - if (m_enabled->get_inconsistent()) { - m_enabled->set_inconsistent (false); - m_enabledConn.block (true); - m_enabled->set_active (false); - m_enabledConn.block (false); - } - else if (m_lastEnabled) - m_enabled->set_inconsistent (true); +void FilmSimulation::enabledChanged () { - m_lastEnabled = m_enabled->get_active (); - } - - if ( listener ) - { - if (m_enabled->get_inconsistent()) + if (listener) { + if (get_inconsistent()) listener->panelChanged (EvFilmSimulationEnabled, M("GENERAL_UNCHANGED")); - else if ( m_enabled->get_active() ) + else if (getEnabled()) listener->panelChanged (EvFilmSimulationEnabled, M("GENERAL_ENABLED")); else listener->panelChanged (EvFilmSimulationEnabled, M("GENERAL_DISABLED")); @@ -81,7 +55,7 @@ void FilmSimulation::onEnabledToggled() void FilmSimulation::adjusterChanged( Adjuster* a, double newval ) { - if (listener && (multiImage||m_enabled->get_active()) ) + if (listener && (multiImage||getEnabled()) ) { Glib::ustring value = a->getTextValue(); listener->panelChanged ( EvFilmSimulationStrength, value ); @@ -100,19 +74,19 @@ void FilmSimulation::read( const rtengine::procparams::ProcParams* pp, const Par disableListener(); updateDisable( true ); - m_enabled->set_active( pp->filmSimulation.enabled ); + setEnabled (pp->filmSimulation.enabled); if ( !pp->filmSimulation.clutFilename.empty() ) m_clutComboBox->setSelectedClut( pp->filmSimulation.clutFilename ); m_strength->setValue( pp->filmSimulation.strength ); if (pedited) { - m_enabled->set_inconsistent (multiImage && !pedited->filmSimulation.enabled); + set_inconsistent (multiImage && !pedited->filmSimulation.enabled); m_strength->setEditedState (pedited->filmSimulation.strength ? Edited : UnEdited); if ( !pedited->filmSimulation.clutFilename ) m_clutComboBox->setSelectedClut("NULL"); } - if ( !m_enabled->get_inconsistent() && !pp->filmSimulation.enabled ) + if ( !get_inconsistent() && !pp->filmSimulation.enabled ) { if (options.clutCacheSize == 1) clutStore.clearCache(); @@ -124,7 +98,6 @@ void FilmSimulation::read( const rtengine::procparams::ProcParams* pp, const Par void FilmSimulation::updateDisable( bool value ) { - m_enabledConn.block( value ); m_clutComboBoxConn.block( value ); } @@ -132,12 +105,12 @@ void FilmSimulation::write( rtengine::procparams::ProcParams* pp, ParamsEdited* { if ( pedited ) { - pedited->filmSimulation.enabled = !m_enabled->get_inconsistent(); + pedited->filmSimulation.enabled = !get_inconsistent(); pedited->filmSimulation.strength = m_strength->getEditedState (); pedited->filmSimulation.clutFilename = m_clutComboBox->getSelectedClut() != "NULL"; } - pp->filmSimulation.enabled = m_enabled->get_active(); + pp->filmSimulation.enabled = getEnabled(); Glib::ustring clutFName = m_clutComboBox->getSelectedClut(); if ( clutFName != "NULL" ) // We do not want to set "NULL" in clutFilename, even if "unedited" pp->filmSimulation.clutFilename = clutFName; diff --git a/rtgui/filmsimulation.h b/rtgui/filmsimulation.h index 17368395f..4b05342f9 100644 --- a/rtgui/filmsimulation.h +++ b/rtgui/filmsimulation.h @@ -46,14 +46,10 @@ public: private: void onClutSelected(); - void onEnabledToggled(); + void enabledChanged(); void updateDisable( bool value ); - Gtk::CheckButton* m_enabled; - bool m_lastEnabled; - sigc::connection m_enabledConn; - ClutComboBox *m_clutComboBox; sigc::connection m_clutComboBoxConn; Glib::ustring m_oldClutFilename; diff --git a/rtgui/flatfield.cc b/rtgui/flatfield.cc index a9b8678c6..93c2f8ccd 100755 --- a/rtgui/flatfield.cc +++ b/rtgui/flatfield.cc @@ -26,7 +26,7 @@ using namespace rtengine; using namespace rtengine::procparams; -FlatField::FlatField () : FoldableToolPanel(this) +FlatField::FlatField () : FoldableToolPanel(this, "flatfield", M("TP_FLATFIELD_LABEL")) { hbff = Gtk::manage(new Gtk::HBox()); hbff->set_spacing(2); diff --git a/rtgui/gradient.cc b/rtgui/gradient.cc index 7d282af94..7ba81730b 100644 --- a/rtgui/gradient.cc +++ b/rtgui/gradient.cc @@ -9,12 +9,8 @@ using namespace rtengine; using namespace rtengine::procparams; -Gradient::Gradient () : FoldableToolPanel(this), EditSubscriber(ET_OBJECTS), lastObject(-1), draggedPointOldAngle(-1000.) +Gradient::Gradient () : FoldableToolPanel(this, "gradient", M("TP_GRADIENT_LABEL"), false, true), EditSubscriber(ET_OBJECTS), lastObject(-1), draggedPointOldAngle(-1000.) { - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_active (false); - enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &Gradient::enabledChanged) ); - edit = Gtk::manage (new Gtk::ToggleButton()); edit->add (*Gtk::manage (new RTImage ("editmodehand.png"))); edit->set_tooltip_text(M("EDIT_OBJECT_TOOLTIP")); @@ -40,11 +36,6 @@ Gradient::Gradient () : FoldableToolPanel(this), EditSubscriber(ET_OBJECTS), las centerY->set_tooltip_text (M("TP_GRADIENT_CENTER_Y_TOOLTIP")); centerY->setAdjusterListener (this); - enaBox = Gtk::manage (new Gtk::HBox()); - enaBox->pack_start(*enabled); - enaBox->pack_end(*edit, false, false, 0); - pack_start(*enaBox); - pack_start(*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_EXPAND_WIDGET, 4); pack_start (*strength); pack_start (*degree); pack_start (*feather); @@ -119,20 +110,16 @@ void Gradient::read (const ProcParams* pp, const ParamsEdited* pedited) strength->setEditedState (pedited->gradient.strength ? Edited : UnEdited); centerX->setEditedState (pedited->gradient.centerX ? Edited : UnEdited); centerY->setEditedState (pedited->gradient.centerY ? Edited : UnEdited); - enabled->set_inconsistent (multiImage && !pedited->gradient.enabled); + set_inconsistent (multiImage && !pedited->gradient.enabled); } - enaConn.block (true); - enabled->set_active (pp->gradient.enabled); - enaConn.block (false); + setEnabled(pp->gradient.enabled); degree->setValue (pp->gradient.degree); feather->setValue (pp->gradient.feather); strength->setValue (pp->gradient.strength); centerX->setValue (pp->gradient.centerX); centerY->setValue (pp->gradient.centerY); - lastEnabled = pp->gradient.enabled; - updateGeometry (pp->gradient.centerX, pp->gradient.centerY, pp->gradient.feather, pp->gradient.degree); enableListener (); @@ -195,7 +182,7 @@ void Gradient::write (ProcParams* pp, ParamsEdited* pedited) pp->gradient.strength = strength->getValue (); pp->gradient.centerX = centerX->getIntValue (); pp->gradient.centerY = centerY->getIntValue (); - pp->gradient.enabled = enabled->get_active(); + pp->gradient.enabled = getEnabled(); if (pedited) { pedited->gradient.degree = degree->getEditedState (); @@ -203,7 +190,7 @@ void Gradient::write (ProcParams* pp, ParamsEdited* pedited) pedited->gradient.strength = strength->getEditedState (); pedited->gradient.centerX = centerX->getEditedState (); pedited->gradient.centerY = centerY->getEditedState (); - pedited->gradient.enabled = !enabled->get_inconsistent(); + pedited->gradient.enabled = !get_inconsistent(); } } @@ -234,7 +221,7 @@ void Gradient::adjusterChanged (Adjuster* a, double newval) { updateGeometry (int(centerX->getValue()), int(centerY->getValue()), feather->getValue(), degree->getValue()); - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { if (a == degree) listener->panelChanged (EvGradientDegree, degree->getTextValue()); @@ -249,20 +236,10 @@ void Gradient::adjusterChanged (Adjuster* a, double newval) { void Gradient::enabledChanged () { - if (batchMode) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaConn.block (true); - enabled->set_active (false); - enaConn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } if (listener) { - if (enabled->get_active()) + if (get_inconsistent()) + listener->panelChanged (EvGradientEnabled, M("GENERAL_UNCHANGED")); + else if (getEnabled()) listener->panelChanged (EvGradientEnabled, M("GENERAL_ENABLED")); else listener->panelChanged (EvGradientEnabled, M("GENERAL_DISABLED")); @@ -289,7 +266,7 @@ void Gradient::trimValues (rtengine::procparams::ProcParams* pp) void Gradient::setBatchMode (bool batchMode) { - removeIfThere(enaBox, edit, false); + removeIfThere(this, edit, false); ToolPanel::setBatchMode (batchMode); degree->showEditedCB (); feather->showEditedCB (); diff --git a/rtgui/gradient.h b/rtgui/gradient.h index 26c9824bb..e1b71de9f 100644 --- a/rtgui/gradient.h +++ b/rtgui/gradient.h @@ -13,10 +13,8 @@ class Gradient : public ToolParamBlock, public AdjusterListener, public Foldable private: int lastObject; - Gtk::HBox* enaBox; protected: - Gtk::CheckButton* enabled; Gtk::ToggleButton* edit; Adjuster* degree; Adjuster* feather; @@ -27,8 +25,7 @@ class Gradient : public ToolParamBlock, public AdjusterListener, public Foldable double draggedPointAdjusterAngle; double draggedFeatherOffset; Coord draggedCenter; - bool lastEnabled; - sigc::connection enaConn, editConn; + sigc::connection editConn; void editToggled (); @@ -45,7 +42,7 @@ class Gradient : public ToolParamBlock, public AdjusterListener, public Foldable void updateGeometry (int centerX_, int centerY_, double feather_, double degree_); void adjusterChanged (Adjuster* a, double newval); - void enabledChanged (); + void enabledChanged (); void setAdjusterBehavior (bool degreeadd, bool featheradd, bool strengthadd, bool centeradd); void trimValues (rtengine::procparams::ProcParams* pp); diff --git a/rtgui/guiutils.cc b/rtgui/guiutils.cc index 27dbc031e..452e48e63 100644 --- a/rtgui/guiutils.cc +++ b/rtgui/guiutils.cc @@ -34,6 +34,12 @@ unsigned int MyReaderLock::readerLockCounter = 0; unsigned int MyWriterLock::writerLockCounter = 0; #endif +Glib::RefPtr MyExpander::inconsistentPBuf; +Glib::RefPtr MyExpander::enabledPBuf; +Glib::RefPtr MyExpander::disabledPBuf; +Glib::RefPtr MyExpander::openedPBuf; +Glib::RefPtr MyExpander::closedPBuf; + Glib::ustring escapeHtmlChars(const Glib::ustring &src) { // Sources chars to be escaped @@ -312,6 +318,295 @@ void drawCrop (Cairo::RefPtr cr, int imx, int imy, int imw, int } +void MyExpander::init() { + inconsistentPBuf = Gdk::Pixbuf::create_from_file(RTImage::findIconAbsolutePath("expanderInconsistent.png")); + enabledPBuf = Gdk::Pixbuf::create_from_file(RTImage::findIconAbsolutePath("expanderEnabled.png")); + disabledPBuf = Gdk::Pixbuf::create_from_file(RTImage::findIconAbsolutePath("expanderDisabled.png")); + openedPBuf = Gdk::Pixbuf::create_from_file(RTImage::findIconAbsolutePath("expanderOpened.png")); + closedPBuf = Gdk::Pixbuf::create_from_file(RTImage::findIconAbsolutePath("expanderClosed.png")); +} + +MyExpander::MyExpander(bool useEnabled, Gtk::Widget* titleWidget) : + enabled(false), inconsistent(false), + child(NULL), headerWidget(NULL), statusImage(NULL), + label(NULL), useEnabled(useEnabled) +{ + set_spacing(options.slimUI ? 0 : 2); + set_name("MyExpander"); + set_can_focus(false); + + headerHBox = Gtk::manage( new Gtk::HBox()); + headerHBox->set_can_focus(false); + + if (useEnabled) { + statusImage = Gtk::manage(new Gtk::Image(disabledPBuf)); + Gtk::EventBox *imageEvBox = Gtk::manage(new Gtk::EventBox()); + imageEvBox->add(*statusImage); + imageEvBox->set_above_child(true); + imageEvBox->signal_button_release_event().connect( sigc::mem_fun(this, & MyExpander::on_enabled_change) ); + headerHBox->pack_start(*imageEvBox, Gtk::PACK_SHRINK, 0); + } + else { + statusImage = Gtk::manage(new Gtk::Image(openedPBuf)); + headerHBox->pack_start(*statusImage, Gtk::PACK_SHRINK, 0); + } + statusImage->set_can_focus(false); + + if (titleWidget) { + headerHBox->pack_start(*titleWidget, Gtk::PACK_EXPAND_WIDGET, 0); + headerWidget = titleWidget; + } + + titleEvBox = Gtk::manage(new Gtk::EventBox()); + titleEvBox->set_name("MyExpanderTitle"); + titleEvBox->add(*headerHBox); + titleEvBox->set_above_child(false); // this is the key! By making it below the child, they will get the events first. + titleEvBox->set_can_focus(false); + + pack_start(*titleEvBox, Gtk::PACK_EXPAND_WIDGET, 0); + + updateStyle(); + titleEvBox->signal_button_release_event().connect( sigc::mem_fun(this, & MyExpander::on_toggle) ); + titleEvBox->signal_enter_notify_event().connect( sigc::mem_fun(this, & MyExpander::on_enter_leave), false); + titleEvBox->signal_leave_notify_event().connect( sigc::mem_fun(this, & MyExpander::on_enter_leave), false); +} + +MyExpander::MyExpander(bool useEnabled, Glib::ustring titleLabel) : + enabled(false), inconsistent(false), + child(NULL), headerWidget(NULL), statusImage(NULL), + label(NULL), useEnabled(useEnabled) +{ + set_spacing(options.slimUI ? 0 : 2); + set_name("MyExpander"); + set_can_focus(false); + + headerHBox = Gtk::manage( new Gtk::HBox()); + headerHBox->set_can_focus(false); + + + if (useEnabled) { + statusImage = Gtk::manage(new Gtk::Image(disabledPBuf)); + Gtk::EventBox *imageEvBox = Gtk::manage(new Gtk::EventBox()); + imageEvBox->add(*statusImage); + imageEvBox->set_above_child(true); + imageEvBox->signal_button_release_event().connect( sigc::mem_fun(this, & MyExpander::on_enabled_change) ); + headerHBox->pack_start(*imageEvBox, Gtk::PACK_SHRINK, 0); + } + else { + statusImage = Gtk::manage(new Gtk::Image(openedPBuf)); + headerHBox->pack_start(*statusImage, Gtk::PACK_SHRINK, 0); + } + statusImage->set_can_focus(false); + + Glib::ustring str("-"); + if (!titleLabel.empty()) + str = titleLabel; + label = Gtk::manage(new Gtk::Label()); + label->set_alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER); + label->set_markup(Glib::ustring("") + escapeHtmlChars(titleLabel) + Glib::ustring("")); + headerHBox->pack_start(*label, Gtk::PACK_EXPAND_WIDGET, 0); + + titleEvBox = Gtk::manage(new Gtk::EventBox()); + titleEvBox->set_name("MyExpanderTitle"); + titleEvBox->add(*headerHBox); + titleEvBox->set_above_child(false); // this is the key! By make it below the child, they will get the events first. + titleEvBox->set_can_focus(false); + + pack_start(*titleEvBox, Gtk::PACK_EXPAND_WIDGET, 0); + + updateStyle(); + titleEvBox->signal_button_release_event().connect( sigc::mem_fun(this, & MyExpander::on_toggle)); + titleEvBox->signal_enter_notify_event().connect( sigc::mem_fun(this, & MyExpander::on_enter_leave), false); + titleEvBox->signal_leave_notify_event().connect( sigc::mem_fun(this, & MyExpander::on_enter_leave), false); +} + +bool MyExpander::on_enter_leave (GdkEventCrossing* event) { + if (is_sensitive()) { + if (event->type == GDK_ENTER_NOTIFY) { + titleEvBox->set_state(Gtk::STATE_PRELIGHT); + queue_draw(); + } + else if (event->type == GDK_LEAVE_NOTIFY) { + titleEvBox->set_state(Gtk::STATE_NORMAL); + queue_draw(); + } + } + return true; +} + +void MyExpander::updateStyle() { + headerHBox->set_spacing(options.slimUI ? 2 : 5); + headerHBox->set_border_width(options.slimUI ? 1 : 2); + set_spacing(0); + set_border_width(options.slimUI ? 0 : 1); + if (child) child->set_border_width(options.slimUI ? 2 : 8); // Outer space around the tool's frame 2:7 +} + +void MyExpander::setLabel (Glib::ustring newLabel) { + if (label) + label->set_markup(Glib::ustring("") + escapeHtmlChars(newLabel) + Glib::ustring("")); +} + +void MyExpander::setLabel (Gtk::Widget *newWidget) { + if (headerWidget) { + removeIfThere(headerHBox, headerWidget, false); + headerHBox->pack_start(*newWidget, Gtk::PACK_EXPAND_WIDGET, 0); + } +} + +bool MyExpander::get_inconsistent() { + return inconsistent; +} + +void MyExpander::set_inconsistent(bool isInconsistent) { + if (inconsistent != isInconsistent) { + inconsistent = isInconsistent; + if (useEnabled) { + if (isInconsistent) + statusImage->set(inconsistentPBuf); + else { + if (enabled) + statusImage->set(enabledPBuf); + else + statusImage->set(disabledPBuf); + } + } + + } +} + +bool MyExpander::getUseEnabled() { + return useEnabled; +} + +bool MyExpander::getEnabled() { + return enabled; +} + +void MyExpander::setEnabled(bool isEnabled) { + if (isEnabled != enabled) { + if (useEnabled) { + if (enabled) { + enabled = false; + if (!inconsistent) { + statusImage->set(disabledPBuf); + message.emit(); + } + } + else { + enabled = true; + if (!inconsistent) { + statusImage->set(enabledPBuf); + message.emit(); + } + } + } + } +} + +void MyExpander::setEnabledTooltipMarkup(Glib::ustring tooltipMarkup) { + if (useEnabled) { + statusImage->set_tooltip_markup(tooltipMarkup); + } +} + +void MyExpander::setEnabledTooltipText(Glib::ustring tooltipText) { + if (useEnabled) { + statusImage->set_tooltip_text(tooltipText); + } +} + +void MyExpander::set_expanded( bool expanded ) { + if (!child) + return; + + bool isVisible = child->is_visible(); + + if (isVisible == expanded) + return; + + if (!useEnabled) { + if (expanded ) + statusImage->set(openedPBuf); + else + statusImage->set(closedPBuf); + } + child->set_visible(expanded); +} + +bool MyExpander::get_expanded() { + return child ? child->get_visible() : false; +} + +void MyExpander::add (Gtk::Container& widget) { + child = &widget; + pack_start(widget); + widget.show(); +} + +/* +bool MyExpander::on_expose_event(GdkEventExpose* event) { + + Gdk::Color c; + Cairo::RefPtr cr = get_window()->create_cairo_context(); + + int w = get_width (); + int h = get_height (); + + Gtk::StateType state = !is_sensitive() ? Gtk::STATE_INSENSITIVE : Gtk::STATE_PRELIGHT; + Glib::RefPtr style = get_style(); + + // clear bg + cr->set_line_width (0.); + c = style->get_bg (state); + cr->set_source_rgb(c.get_red_p(), c.get_green_p(), c.get_blue_p()); + // draw the box's background + cr->rectangle (0., 0., double(w), double(h)); + cr->fill(); + return true; +} +*/ + +bool MyExpander::on_toggle(GdkEventButton* event) { + if (!child || event->button != 1) + return false; + + bool isVisible = child->is_visible(); + if (!useEnabled) { + if (isVisible) + statusImage->set(closedPBuf); + else + statusImage->set(openedPBuf); + } + child->set_visible(!isVisible); + return false; +} + +Gtk::Container* MyExpander::getChild() { + return child; +} + +// used to connect a function to the enabled_toggled signal +MyExpander::type_signal_enabled_toggled MyExpander::signal_enabled_toggled() { + return message; +} + +// internal use ; when the user clicks on the toggle button, it calls this method that will emit an enabled_change event +bool MyExpander::on_enabled_change(GdkEventButton* event) { + if (useEnabled && event->button == 1) { + if (enabled) { + enabled = false; + statusImage->set(disabledPBuf); + } + else { + enabled = true; + statusImage->set(enabledPBuf); + } + message.emit(); + } + return false; +} + /* * * Derived class of some widgets to properly handle the scroll wheel ; diff --git a/rtgui/guiutils.h b/rtgui/guiutils.h index 41a2d99cc..e7bab70e4 100644 --- a/rtgui/guiutils.h +++ b/rtgui/guiutils.h @@ -76,6 +76,107 @@ public: } }; +/** + * @brief A custom Expander class, that can handle widgets in the title bar + * + * Custom made expander for responsive widgets in the header. It also handle a "enabled/disabled" property that display + * a different arrow depending on this boolean value. + * + * Warning: once you've instantiated this class with a text label or a widget label, you won't be able to revert to the other solution. + */ +class MyExpander : public Gtk::VBox { +public: + typedef sigc::signal type_signal_enabled_toggled; +private: + type_signal_enabled_toggled message; + static Glib::RefPtr inconsistentPBuf; /// "inconsistent" image, displayed when useEnabled is true ; in this case, nothing will tell that an expander is opened/closed + static Glib::RefPtr enabledPBuf; /// "enabled" image, displayed when useEnabled is true ; in this case, nothing will tell that an expander is opened/closed + static Glib::RefPtr disabledPBuf; /// "disabled" image, displayed when useEnabled is true ; in this case, nothing will tell that an expander is opened/closed + static Glib::RefPtr openedPBuf; /// "opened" image, displayed when useEnabled is false + static Glib::RefPtr closedPBuf; /// "closed" image, displayed when useEnabled is false + bool enabled; /// Enabled feature (default to true) + bool inconsistent; /// True if the enabled button is inconsistent + Gtk::EventBox *titleEvBox; /// EventBox of the title, to get a connector from it + Gtk::HBox *headerHBox; + + /// Triggered on opened/closed event + bool on_toggle(GdkEventButton* event); + /// Triggered on enabled/disabled change -> will emit a toggle event to the connected objects + bool on_enabled_change(GdkEventButton* event); + /// Used to handle the colored background + bool on_enter_leave (GdkEventCrossing* event); + /// Update the style of this widget, depending in the "slim" option + void updateStyle(); + + void on_style_changed (const Glib::RefPtr& style) { updateStyle(); } + + + +protected: + Gtk::Container* child; /// Gtk::Contained to display below the expander's title + Gtk::Widget* headerWidget; /// Widget to display in the header, next to the arrow image ; can be NULL if the "string" version of the ctor has been used + Gtk::Image* statusImage; /// Image to display the opened/closed status (if useEnabled is false) of the enabled/disabled status (if useEnabled is true) + Gtk::Label* label; /// Text to display in the header, next to the arrow image ; can be NULL if the "widget" version of the ctor has been used + bool useEnabled; /// Set whether to handle an enabled/disabled feature and display the appropriate images + +public: + + /** @brief Create a custom expander with a simple header made of a label. + * @param useEnabled Set whether to handle an enabled/disabled toggle button and display the appropriate image + * @param titleLabel A string to display in the header. Warning: you won't be able to switch to a widget label. + */ + MyExpander(bool useEnabled, Glib::ustring titleLabel); + + /** Create a custom expander with a a custom - and responsive - widget + * @param useEnabled Set whether to handle an enabled/disabled toggle button and display the appropriate image + * @param titleWidget A widget to display in the header. Warning: you won't be able to switch to a string label. + */ + MyExpander(bool useEnabled, Gtk::Widget* titleWidget); + + /// Initialize the class by loading the images + static void init(); + + Glib::SignalProxy1< bool,GdkEventButton* > signal_button_release_event() { return titleEvBox->signal_button_release_event(); }; + type_signal_enabled_toggled signal_enabled_toggled(); + + /// Set a new label string. If it has been instantiated with a Gtk::Widget, this method will do nothing + void setLabel (Glib::ustring newLabel); + /// Set a new label string. If it has been instantiated with a Gtk::Widget, this method will do nothing + void setLabel (Gtk::Widget *newWidget); + + /// Get whether the enabled option is set (to true or false) or unset (i.e. undefined) + bool get_inconsistent(); + /// Set whether the enabled option is set (to true or false) or unset (i.e. undefined) + void set_inconsistent(bool isInconsistent); + + /// Get whether the enabled button is used or not + bool getUseEnabled(); + /// Get whether the enabled button is on or off + bool getEnabled(); + /// If not inconsistent, set the enabled button to true or false and emit the message if the state is different + /// If inconsistent, set the internal value to true or false, but do not update the image and do not emit the message + void setEnabled(bool isEnabled); + /// Adds a Tooltip to the Enabled button, if it exist ; do nothing otherwise + void setEnabledTooltipMarkup(Glib::ustring tooltipMarkup); + void setEnabledTooltipText(Glib::ustring tooltipText); + + /// Get the header widget. It'll send back the Gtk::Label* if it has been instantiated with a simple text + Gtk::Widget* getLabelWidget() const { return headerWidget ? headerWidget : label; } + + /// Get the widget shown/hidden by the expander + Gtk::Container* getChild(); + + /// Set the collapsed/expanded state of the expander + void set_expanded( bool expanded ); + + /// Get the collapsed/expanded state of the expander + bool get_expanded(); + + /// Add a Gtk::Container for the content of the expander + void add (Gtk::Container& widget); +}; + + /** * @brief subclass of Gtk::ScrolledWindow in order to handle the scrollwheel */ diff --git a/rtgui/hsvequalizer.cc b/rtgui/hsvequalizer.cc index 58e0781d0..ccd9ee8e0 100644 --- a/rtgui/hsvequalizer.cc +++ b/rtgui/hsvequalizer.cc @@ -25,7 +25,7 @@ using namespace rtengine::procparams; //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -HSVEqualizer::HSVEqualizer () : FoldableToolPanel(this) { +HSVEqualizer::HSVEqualizer () : FoldableToolPanel(this, "hsvequalizer", M("TP_HSVEQUALIZER_LABEL")) { std::vector bottomMilestones; float R, G, B; diff --git a/rtgui/icmpanel.cc b/rtgui/icmpanel.cc index e42738f12..b9a7d7e81 100644 --- a/rtgui/icmpanel.cc +++ b/rtgui/icmpanel.cc @@ -30,7 +30,7 @@ using namespace rtengine::procparams; extern Options options; -ICMPanel::ICMPanel () : FoldableToolPanel(this), iunchanged(NULL), icmplistener(NULL), lastRefFilename("") { +ICMPanel::ICMPanel () : FoldableToolPanel(this, "icm", M("TP_ICM_LABEL")), iunchanged(NULL), icmplistener(NULL), lastRefFilename("") { isBatchMode = lastToneCurve = lastBlendCMSMatrix = lastgamfree = false; diff --git a/rtgui/impulsedenoise.cc b/rtgui/impulsedenoise.cc index 2c2cc2b62..2979d42f2 100644 --- a/rtgui/impulsedenoise.cc +++ b/rtgui/impulsedenoise.cc @@ -24,18 +24,12 @@ using namespace rtengine; using namespace rtengine::procparams; -ImpulseDenoise::ImpulseDenoise () : FoldableToolPanel(this) { - - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_active (false); +ImpulseDenoise::ImpulseDenoise () : FoldableToolPanel(this, "impulsedenoise", M("TP_IMPULSEDENOISE_LABEL"), true, true) { thresh = Gtk::manage (new Adjuster (M("TP_IMPULSEDENOISE_THRESH"), 0, 100, 1, 50)); - pack_start (*enabled); - pack_start (*Gtk::manage (new Gtk::HSeparator())); pack_start (*thresh); - enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &ImpulseDenoise::enabledChanged) ); thresh->setAdjusterListener (this); show_all_children (); @@ -47,14 +41,10 @@ void ImpulseDenoise::read (const ProcParams* pp, const ParamsEdited* pedited) { if (pedited) { thresh->setEditedState (pedited->impulseDenoise.thresh ? Edited : UnEdited); - enabled->set_inconsistent (!pedited->impulseDenoise.enabled); + set_inconsistent (multiImage && !pedited->impulseDenoise.enabled); } - enaConn.block (true); - enabled->set_active (pp->impulseDenoise.enabled); - enaConn.block (false); - - lastEnabled = pp->impulseDenoise.enabled; + setEnabled(pp->impulseDenoise.enabled); thresh->setValue (pp->impulseDenoise.thresh); @@ -64,11 +54,11 @@ void ImpulseDenoise::read (const ProcParams* pp, const ParamsEdited* pedited) { void ImpulseDenoise::write (ProcParams* pp, ParamsEdited* pedited) { pp->impulseDenoise.thresh = thresh->getValue (); - pp->impulseDenoise.enabled = enabled->get_active(); - + pp->impulseDenoise.enabled = getEnabled(); + if (pedited) { pedited->impulseDenoise.thresh = thresh->getEditedState (); - pedited->impulseDenoise.enabled = !enabled->get_inconsistent(); + pedited->impulseDenoise.enabled = !get_inconsistent(); } } @@ -84,33 +74,21 @@ void ImpulseDenoise::setDefaults (const ProcParams* defParams, const ParamsEdite void ImpulseDenoise::adjusterChanged (Adjuster* a, double newval) { - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { listener->panelChanged (EvIDNThresh, Glib::ustring::format (std::setw(2), std::fixed, std::setprecision(1), a->getValue())); } } void ImpulseDenoise::enabledChanged () { - - if (batchMode) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaConn.block (true); - enabled->set_active (false); - enaConn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } - if (listener) { - if (enabled->get_active ()) + if (get_inconsistent()) + listener->panelChanged (EvIDNEnabled, M("GENERAL_UNCHANGED")); + else if (getEnabled()) listener->panelChanged (EvIDNEnabled, M("GENERAL_ENABLED")); else listener->panelChanged (EvIDNEnabled, M("GENERAL_DISABLED")); - } + } } void ImpulseDenoise::setBatchMode (bool batchMode) { diff --git a/rtgui/impulsedenoise.h b/rtgui/impulsedenoise.h index ab20c4aae..7c7cdc48c 100644 --- a/rtgui/impulsedenoise.h +++ b/rtgui/impulsedenoise.h @@ -28,9 +28,6 @@ class ImpulseDenoise : public ToolParamBlock, public AdjusterListener, public Fo protected: Adjuster* thresh; //Adjuster* edge; - Gtk::CheckButton* enabled; - bool lastEnabled; - sigc::connection enaConn; public: @@ -42,7 +39,7 @@ class ImpulseDenoise : public ToolParamBlock, public AdjusterListener, public Fo void setBatchMode (bool batchMode); void adjusterChanged (Adjuster* a, double newval); - void enabledChanged (); + void enabledChanged (); void setAdjusterBehavior (bool threshadd); void trimValues (rtengine::procparams::ProcParams* pp); diff --git a/rtgui/labcurve.cc b/rtgui/labcurve.cc index 542f325c7..64a42a968 100644 --- a/rtgui/labcurve.cc +++ b/rtgui/labcurve.cc @@ -24,7 +24,7 @@ using namespace rtengine; using namespace rtengine::procparams; -LCurve::LCurve () : FoldableToolPanel(this) { +LCurve::LCurve () : FoldableToolPanel(this, "labcurves", M("TP_LABCURVE_LABEL")) { std::vector milestones; diff --git a/rtgui/lensgeom.cc b/rtgui/lensgeom.cc index 436423b56..168044197 100644 --- a/rtgui/lensgeom.cc +++ b/rtgui/lensgeom.cc @@ -23,7 +23,7 @@ using namespace rtengine; using namespace rtengine::procparams; -LensGeometry::LensGeometry () : FoldableToolPanel(this), rlistener(NULL) { +LensGeometry::LensGeometry () : FoldableToolPanel(this, "lensgeom", M("TP_LENSGEOM_LABEL")), rlistener(NULL) { fill = Gtk::manage (new Gtk::CheckButton (M("TP_LENSGEOM_FILL"))); pack_start (*fill); diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index b947fc4a3..1149991bf 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -27,7 +27,7 @@ using namespace rtengine; using namespace rtengine::procparams; -LensProfilePanel::LensProfilePanel () : FoldableToolPanel(this) +LensProfilePanel::LensProfilePanel () : FoldableToolPanel(this, "lensprof", M("TP_LENSPROFILE_LABEL")) { hbLCPFile = Gtk::manage(new Gtk::HBox()); diff --git a/rtgui/main.cc b/rtgui/main.cc index 975d1ef32..9b4b20d99 100644 --- a/rtgui/main.cc +++ b/rtgui/main.cc @@ -262,6 +262,7 @@ int main(int argc, char **argv) defaultIconTheme->append_search_path(icon_path); RTImage::setPaths(options); + MyExpander::init(); // has to stay AFTER RTImage::setPaths #ifndef WIN32 // For an unknown reason, gtkmm 2.22 don't know the gtk-button-images property, while it exists in the documentation... diff --git a/rtgui/pcvignette.cc b/rtgui/pcvignette.cc index bc287f40d..4ff44397c 100644 --- a/rtgui/pcvignette.cc +++ b/rtgui/pcvignette.cc @@ -7,12 +7,8 @@ using namespace rtengine; using namespace rtengine::procparams; -PCVignette::PCVignette () : FoldableToolPanel(this) +PCVignette::PCVignette () : FoldableToolPanel(this, "pcvignette", M("TP_PCVIGNETTE_LABEL"), false, true) { - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_active (false); - enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &PCVignette::enabledChanged) ); - strength = Gtk::manage (new Adjuster (M("TP_PCVIGNETTE_STRENGTH"), -6, 6, 0.01, 0)); strength->set_tooltip_text (M("TP_PCVIGNETTE_STRENGTH_TOOLTIP")); strength->setAdjusterListener (this); @@ -25,8 +21,6 @@ PCVignette::PCVignette () : FoldableToolPanel(this) roundness->set_tooltip_text (M("TP_PCVIGNETTE_ROUNDNESS_TOOLTIP")); roundness->setAdjusterListener (this); - pack_start(*enabled); - pack_start(*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_EXPAND_WIDGET, 4); pack_start (*strength); pack_start (*feather); pack_start (*roundness); @@ -42,18 +36,14 @@ void PCVignette::read (const ProcParams* pp, const ParamsEdited* pedited) strength->setEditedState (pedited->pcvignette.strength ? Edited : UnEdited); feather->setEditedState (pedited->pcvignette.feather ? Edited : UnEdited); roundness->setEditedState (pedited->pcvignette.roundness ? Edited : UnEdited); - enabled->set_inconsistent (!pedited->pcvignette.enabled); + set_inconsistent (multiImage && !pedited->pcvignette.enabled); } - enaConn.block (true); - enabled->set_active (pp->pcvignette.enabled); - enaConn.block (false); + setEnabled(pp->pcvignette.enabled); strength->setValue (pp->pcvignette.strength); feather->setValue (pp->pcvignette.feather); roundness->setValue (pp->pcvignette.roundness); - lastEnabled = pp->pcvignette.enabled; - enableListener (); } @@ -62,13 +52,13 @@ void PCVignette::write (ProcParams* pp, ParamsEdited* pedited) pp->pcvignette.strength = strength->getValue (); pp->pcvignette.feather = feather->getIntValue (); pp->pcvignette.roundness = roundness->getIntValue (); - pp->pcvignette.enabled = enabled->get_active(); + pp->pcvignette.enabled = getEnabled(); if (pedited) { pedited->pcvignette.strength = strength->getEditedState (); pedited->pcvignette.feather = feather->getEditedState (); pedited->pcvignette.roundness = roundness->getEditedState (); - pedited->pcvignette.enabled = !enabled->get_inconsistent(); + pedited->pcvignette.enabled = !get_inconsistent(); } } @@ -91,7 +81,7 @@ void PCVignette::setDefaults (const ProcParams* defParams, const ParamsEdited* p void PCVignette::adjusterChanged (Adjuster* a, double newval) { - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { if (a == strength) listener->panelChanged (EvPCVignetteStrength, strength->getTextValue()); else if (a == feather) @@ -103,20 +93,10 @@ void PCVignette::adjusterChanged (Adjuster* a, double newval) { void PCVignette::enabledChanged () { - if (batchMode) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaConn.block (true); - enabled->set_active (false); - enaConn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } if (listener) { - if (enabled->get_active()) + if (get_inconsistent()) + listener->panelChanged (EvPCVignetteEnabled, M("GENERAL_UNCHANGED")); + else if (getEnabled()) listener->panelChanged (EvPCVignetteEnabled, M("GENERAL_ENABLED")); else listener->panelChanged (EvPCVignetteEnabled, M("GENERAL_DISABLED")); diff --git a/rtgui/pcvignette.h b/rtgui/pcvignette.h index 158164429..c71e5c32a 100644 --- a/rtgui/pcvignette.h +++ b/rtgui/pcvignette.h @@ -11,12 +11,9 @@ class PCVignette : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel { protected: - Gtk::CheckButton* enabled; Adjuster* strength; Adjuster* feather; Adjuster* roundness; - bool lastEnabled; - sigc::connection enaConn; public: @@ -28,7 +25,7 @@ class PCVignette : public ToolParamBlock, public AdjusterListener, public Foldab void setBatchMode (bool batchMode); void adjusterChanged (Adjuster* a, double newval); - void enabledChanged (); + void enabledChanged (); void setAdjusterBehavior (bool strengthadd, bool featheradd, bool roundnessadd); void trimValues (rtengine::procparams::ProcParams* pp); }; diff --git a/rtgui/perspective.cc b/rtgui/perspective.cc index c33e82c85..1ae6a33ba 100644 --- a/rtgui/perspective.cc +++ b/rtgui/perspective.cc @@ -22,7 +22,7 @@ using namespace rtengine; using namespace rtengine::procparams; -PerspCorrection::PerspCorrection () : FoldableToolPanel(this) { +PerspCorrection::PerspCorrection () : FoldableToolPanel(this, "perspective", M("TP_PERSPECTIVE_LABEL")) { Gtk::Image* ipersHL = Gtk::manage (new RTImage ("perspective-h1.png")); Gtk::Image* ipersHR = Gtk::manage (new RTImage ("perspective-h2.png")); diff --git a/rtgui/preprocess.cc b/rtgui/preprocess.cc index 80311a2d2..bc9a18b4b 100644 --- a/rtgui/preprocess.cc +++ b/rtgui/preprocess.cc @@ -24,7 +24,7 @@ using namespace rtengine; using namespace rtengine::procparams; -PreProcess::PreProcess () : FoldableToolPanel(this) +PreProcess::PreProcess () : FoldableToolPanel(this, "preprocess", M("TP_PREPROCESS_LABEL"), true) { Gtk::HBox* hotdeadPixel = Gtk::manage( new Gtk::HBox () ); diff --git a/rtgui/rawcacorrection.cc b/rtgui/rawcacorrection.cc index daeaf5894..b54e92449 100644 --- a/rtgui/rawcacorrection.cc +++ b/rtgui/rawcacorrection.cc @@ -25,7 +25,7 @@ using namespace rtengine; using namespace rtengine::procparams; -RAWCACorr::RAWCACorr () : FoldableToolPanel(this) +RAWCACorr::RAWCACorr () : FoldableToolPanel(this, "rawcacorrection", M("TP_CHROMATABERR_LABEL")) { Gtk::Image* icaredL = Gtk::manage (new RTImage ("ajd-ca-red1.png")); Gtk::Image* icaredR = Gtk::manage (new RTImage ("ajd-ca-red2.png")); diff --git a/rtgui/rawexposure.cc b/rtgui/rawexposure.cc index 1af57ce1a..246e7352b 100644 --- a/rtgui/rawexposure.cc +++ b/rtgui/rawexposure.cc @@ -24,7 +24,7 @@ using namespace rtengine; using namespace rtengine::procparams; -RAWExposure::RAWExposure () : FoldableToolPanel(this) +RAWExposure::RAWExposure () : FoldableToolPanel(this, "rawexposure", M("TP_EXPOS_WHITEPOINT_LABEL")) { PexPos = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_LINEAR"),0.1,16.0,0.01,1)); PexPos->setAdjusterListener (this); diff --git a/rtgui/resize.cc b/rtgui/resize.cc index c4b22dea5..e5faca43b 100644 --- a/rtgui/resize.cc +++ b/rtgui/resize.cc @@ -23,15 +23,11 @@ using namespace rtengine; using namespace rtengine::procparams; -Resize::Resize () : FoldableToolPanel(this), maxw(100000), maxh(100000), lastEnabled(false) { +Resize::Resize () : FoldableToolPanel(this, "resize", M("TP_RESIZE_LABEL"), false, true), maxw(100000), maxh(100000) { cropw = 0; croph = 0; - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - pack_start(*enabled); - pack_start(*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_SHRINK, 2); - Gtk::Table* combos = Gtk::manage (new Gtk::Table (2, 2)); Gtk::Label *label = NULL; @@ -114,7 +110,6 @@ Resize::Resize () : FoldableToolPanel(this), maxw(100000), maxh(100000), lastEna aconn = appliesTo->signal_changed().connect ( sigc::mem_fun(*this, &Resize::appliesToChanged) ); method->signal_changed().connect ( sigc::mem_fun(*this, &Resize::methodChanged) ); sconn = spec->signal_changed().connect ( sigc::mem_fun(*this, &Resize::specChanged) ); - enaConn = enabled->signal_toggled().connect ( sigc::mem_fun(*this, &Resize::enabledToggled) ); show_all(); } @@ -137,7 +132,7 @@ void Resize::read (const ProcParams* pp, const ParamsEdited* pedited) { scale->setValue (pp->resize.scale); w->set_value (pp->resize.width); h->set_value (pp->resize.height); - enabled->set_active (pp->resize.enabled); + setEnabled (pp->resize.enabled); spec->set_active (pp->resize.dataspec); updateGUI(); @@ -179,17 +174,15 @@ void Resize::read (const ProcParams* pp, const ParamsEdited* pedited) { method->set_active (8); if (!pedited->resize.dataspec) spec->set_active (4); - enabled->set_inconsistent (!pedited->resize.enabled); + set_inconsistent (multiImage && !pedited->resize.enabled); } - lastEnabled = pp->resize.enabled; - scale->block(false); sconn.block (false); wconn.block (false); hconn.block (false); aconn.block (false); - enableListener (); + enableListener (); } void Resize::write (ProcParams* pp, ParamsEdited* pedited) { @@ -220,11 +213,11 @@ void Resize::write (ProcParams* pp, ParamsEdited* pedited) { pp->resize.dataspec = dataSpec; pp->resize.width = w->get_value_as_int (); pp->resize.height = h->get_value_as_int (); - pp->resize.enabled = enabled->get_active (); + pp->resize.enabled = getEnabled (); //printf(" L:%d H:%d\n", pp->resize.width, pp->resize.height); if (pedited) { - pedited->resize.enabled = !enabled->get_inconsistent(); + pedited->resize.enabled = !get_inconsistent(); pedited->resize.dataspec = dataSpec != 4; pedited->resize.appliesTo = appliesTo->get_active_row_number() != 2; pedited->resize.method = method->get_active_row_number() != 8; @@ -262,7 +255,7 @@ void Resize::adjusterChanged (Adjuster* a, double newval) { hconn.block (false); } - if (listener && (enabled->get_active () || batchMode)) + if (listener && (getEnabled () || batchMode)) listener->panelChanged (EvResizeScale, Glib::ustring::format (std::setw(5), std::fixed, std::setprecision(2), scale->getValue())); } @@ -290,7 +283,7 @@ void Resize::appliesToChanged () { //printf("\nPASSAGE EN MODE \"%s\"\n\n", appliesTo->get_active_text().c_str()); setDimensions(); - if (listener && (enabled->get_active () || batchMode)) { + if (listener && (getEnabled () || batchMode)) { //printf("Appel du listener\n"); listener->panelChanged (EvResizeAppliesTo, appliesTo->get_active_text()); } @@ -298,7 +291,7 @@ void Resize::appliesToChanged () { void Resize::methodChanged () { - if (listener && (enabled->get_active () || batchMode)) + if (listener && (getEnabled () || batchMode)) listener->panelChanged (EvResizeMethod, method->get_active_text()); } @@ -449,7 +442,7 @@ void Resize::entryWChanged () { if (spec->get_active_row_number() == 3) notifyBBox(); else { - if (enabled->get_active () || batchMode) + if (getEnabled () || batchMode) listener->panelChanged (EvResizeWidth, Glib::ustring::format (w->get_value_as_int())); } } @@ -481,7 +474,7 @@ void Resize::entryHChanged () { if (spec->get_active_row_number() == 3) notifyBBox(); else { - if (enabled->get_active () || batchMode) + if (getEnabled () || batchMode) listener->panelChanged (EvResizeHeight, Glib::ustring::format (h->get_value_as_int())); } } @@ -548,7 +541,7 @@ void Resize::updateGUI () { } void Resize::notifyBBox() { - if (listener && (enabled->get_active () || batchMode)) + if (listener && (getEnabled () || batchMode)) listener->panelChanged (EvResizeBoundingBox, Glib::ustring::compose("(%1x%2)",(int)w->get_value(), (int)h->get_value() )); } @@ -560,23 +553,12 @@ void Resize::setBatchMode (bool batchMode) { scale->showEditedCB (); } -void Resize::enabledToggled () { - - if (batchMode) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaConn.block (true); - enabled->set_active (false); - enaConn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } +void Resize::enabledChanged () { if (listener) { - if (enabled->get_active ()) + if (get_inconsistent()) + listener->panelChanged (EvResizeEnabled, M("GENERAL_UNCHANGED")); + else if (getEnabled()) listener->panelChanged (EvResizeEnabled, M("GENERAL_ENABLED")); else listener->panelChanged (EvResizeEnabled, M("GENERAL_DISABLED")); diff --git a/rtgui/resize.h b/rtgui/resize.h index 9ddbb6c9c..cc4934c6a 100644 --- a/rtgui/resize.h +++ b/rtgui/resize.h @@ -28,7 +28,6 @@ class Resize : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel, public rtengine::SizeListener { protected: - Gtk::CheckButton* enabled; Adjuster* scale; Gtk::VBox* sizeBox; MyComboBoxText* appliesTo; @@ -38,8 +37,8 @@ class Resize : public ToolParamBlock, public AdjusterListener, public FoldableTo MySpinButton* h; int maxw, maxh; int cropw, croph; - sigc::connection sconn, aconn, wconn, hconn, enaConn; - bool wDirty, hDirty, lastEnabled; + sigc::connection sconn, aconn, wconn, hconn; + bool wDirty, hDirty; public: @@ -61,7 +60,7 @@ class Resize : public ToolParamBlock, public AdjusterListener, public FoldableTo void setGUIFromCrop (bool isCropped, int cw, int ch); void sizeChanged (int w, int h, int ow, int oh); void setDimensions (); - void enabledToggled (); + void enabledChanged (); private: void fitBoxScale (); diff --git a/rtgui/rgbcurves.cc b/rtgui/rgbcurves.cc index d2f34c730..97e92b52a 100644 --- a/rtgui/rgbcurves.cc +++ b/rtgui/rgbcurves.cc @@ -22,7 +22,7 @@ using namespace rtengine; using namespace rtengine::procparams; -RGBCurves::RGBCurves () : FoldableToolPanel(this) { +RGBCurves::RGBCurves () : FoldableToolPanel(this, "rgbcurves", M("TP_RGBCURVES_LABEL")) { lumamode = Gtk::manage (new Gtk::CheckButton (M("TP_RGBCURVES_LUMAMODE"))); lumamode->set_tooltip_markup (M("TP_RGBCURVES_LUMAMODE_TOOLTIP")); diff --git a/rtgui/rotate.cc b/rtgui/rotate.cc index 79f0cf0bb..973ec3c3a 100644 --- a/rtgui/rotate.cc +++ b/rtgui/rotate.cc @@ -24,7 +24,7 @@ using namespace rtengine; using namespace rtengine::procparams; -Rotate::Rotate () : FoldableToolPanel(this) { +Rotate::Rotate () : FoldableToolPanel(this, "rotate", M("TP_ROTATE_LABEL")) { rlistener = NULL; diff --git a/rtgui/sensorbayer.cc b/rtgui/sensorbayer.cc index 3bfc1eaa7..8bef0b45a 100644 --- a/rtgui/sensorbayer.cc +++ b/rtgui/sensorbayer.cc @@ -23,7 +23,7 @@ using namespace rtengine; using namespace rtengine::procparams; -SensorBayer::SensorBayer () : FoldableToolPanel(this) { +SensorBayer::SensorBayer () : FoldableToolPanel(this, "sensorbayaer", M("TP_RAW_SENSOR_BAYER_LABEL")) { packBox = Gtk::manage (new ToolParamBlock ()); pack_start (*packBox); diff --git a/rtgui/sensorxtrans.cc b/rtgui/sensorxtrans.cc index 1793948cf..a06064572 100644 --- a/rtgui/sensorxtrans.cc +++ b/rtgui/sensorxtrans.cc @@ -23,7 +23,7 @@ using namespace rtengine; using namespace rtengine::procparams; -SensorXTrans::SensorXTrans () : FoldableToolPanel(this) { +SensorXTrans::SensorXTrans () : FoldableToolPanel(this, "sensorxtrans", M("TP_RAW_SENSOR_XTRANS_LABEL")) { packBox = Gtk::manage (new ToolParamBlock ()); pack_start (*packBox); diff --git a/rtgui/shadowshighlights.cc b/rtgui/shadowshighlights.cc index d59f9b890..ec672b3aa 100644 --- a/rtgui/shadowshighlights.cc +++ b/rtgui/shadowshighlights.cc @@ -21,14 +21,7 @@ using namespace rtengine; using namespace rtengine::procparams; -ShadowsHighlights::ShadowsHighlights () : FoldableToolPanel(this) { - - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_active (false); - pack_start (*enabled); - enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &ShadowsHighlights::enabledChanged) ); - - pack_start (*Gtk::manage (new Gtk::HSeparator())); +ShadowsHighlights::ShadowsHighlights () : FoldableToolPanel(this, "shadowshighlights", M("TP_SHADOWSHLIGHTS_LABEL"), false, true) { hq = Gtk::manage (new Gtk::CheckButton (M("TP_SHADOWSHLIGHTS_SHARPMASK"))); hq->set_active (false); @@ -73,24 +66,22 @@ void ShadowsHighlights::read (const ProcParams* pp, const ParamsEdited* pedited) disableListener (); if (pedited) { - radius->setEditedState (pedited->sh.radius ? Edited : UnEdited); - lcontrast->setEditedState (pedited->sh.localcontrast ? Edited : UnEdited); - highlights->setEditedState (pedited->sh.highlights ? Edited : UnEdited); + radius->setEditedState (pedited->sh.radius ? Edited : UnEdited); + lcontrast->setEditedState (pedited->sh.localcontrast ? Edited : UnEdited); + highlights->setEditedState (pedited->sh.highlights ? Edited : UnEdited); h_tonalwidth->setEditedState (pedited->sh.htonalwidth ? Edited : UnEdited); - shadows->setEditedState (pedited->sh.shadows ? Edited : UnEdited); + shadows->setEditedState (pedited->sh.shadows ? Edited : UnEdited); s_tonalwidth->setEditedState (pedited->sh.stonalwidth ? Edited : UnEdited); - enabled->set_inconsistent (!pedited->sh.enabled); - hq->set_inconsistent (!pedited->sh.hq); + set_inconsistent (multiImage && !pedited->sh.enabled); + hq->set_inconsistent (!pedited->sh.hq); } - enaConn.block (true); - enabled->set_active (pp->sh.enabled); - enaConn.block (false); + setEnabled (pp->sh.enabled); + hqConn.block (true); hq->set_active (pp->sh.hq); hqConn.block (false); - - lastEnabled = pp->sh.enabled; + lastHQ = pp->sh.hq; radius->setValue (pp->sh.radius); @@ -111,7 +102,7 @@ void ShadowsHighlights::write (ProcParams* pp, ParamsEdited* pedited) { pp->sh.htonalwidth = (int)h_tonalwidth->getValue (); pp->sh.shadows = (int)shadows->getValue (); pp->sh.stonalwidth = (int)s_tonalwidth->getValue (); - pp->sh.enabled = enabled->get_active(); + pp->sh.enabled = getEnabled(); pp->sh.hq = hq->get_active(); if (pedited) { @@ -121,7 +112,7 @@ void ShadowsHighlights::write (ProcParams* pp, ParamsEdited* pedited) { pedited->sh.htonalwidth = h_tonalwidth->getEditedState (); pedited->sh.shadows = shadows->getEditedState (); pedited->sh.stonalwidth = s_tonalwidth->getEditedState (); - pedited->sh.enabled = !enabled->get_inconsistent(); + pedited->sh.enabled = !get_inconsistent(); pedited->sh.hq = !hq->get_inconsistent(); } } @@ -155,7 +146,7 @@ void ShadowsHighlights::setDefaults (const ProcParams* defParams, const ParamsEd void ShadowsHighlights::adjusterChanged (Adjuster* a, double newval) { - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { Glib::ustring costr = Glib::ustring::format ((int)a->getValue()); @@ -176,21 +167,10 @@ void ShadowsHighlights::adjusterChanged (Adjuster* a, double newval) { void ShadowsHighlights::enabledChanged () { - if (batchMode) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaConn.block (true); - enabled->set_active (false); - enaConn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } - if (listener) { - if (enabled->get_active()) + if (get_inconsistent()) + listener->panelChanged (EvSHEnabled, M("GENERAL_UNCHANGED")); + else if (getEnabled()) listener->panelChanged (EvSHEnabled, M("GENERAL_ENABLED")); else listener->panelChanged (EvSHEnabled, M("GENERAL_DISABLED")); diff --git a/rtgui/shadowshighlights.h b/rtgui/shadowshighlights.h index 629fe8709..9129d1a8c 100644 --- a/rtgui/shadowshighlights.h +++ b/rtgui/shadowshighlights.h @@ -32,10 +32,9 @@ class ShadowsHighlights : public ToolParamBlock, public AdjusterListener, public Adjuster* s_tonalwidth; Adjuster* lcontrast; Adjuster* radius; - Gtk::CheckButton* enabled; Gtk::CheckButton* hq; - bool lastEnabled, lastHQ; - sigc::connection enaConn, hqConn; + bool lastHQ; + sigc::connection hqConn; public: @@ -47,9 +46,9 @@ class ShadowsHighlights : public ToolParamBlock, public AdjusterListener, public void setBatchMode (bool batchMode); void adjusterChanged (Adjuster* a, double newval); - void enabledChanged (); - void hqChanged (); - + void enabledChanged (); + void hqChanged (); + void setAdjusterBehavior (bool hadd, bool sadd, bool lcadd); void trimValues (rtengine::procparams::ProcParams* pp); }; diff --git a/rtgui/sharpenedge.cc b/rtgui/sharpenedge.cc index 449673b0e..9c7a528bd 100644 --- a/rtgui/sharpenedge.cc +++ b/rtgui/sharpenedge.cc @@ -27,15 +27,7 @@ using namespace rtengine; using namespace rtengine::procparams; -SharpenEdge::SharpenEdge () : FoldableToolPanel(this) { - - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_active (true); - pack_start(*enabled, Gtk::PACK_SHRINK, 0); - - Gtk::HSeparator *hsep1 = Gtk::manage (new Gtk::HSeparator()); - hsep1->show (); - pack_start (*hsep1); +SharpenEdge::SharpenEdge () : FoldableToolPanel(this, "sharpenedge", M("TP_SHARPENEDGE_LABEL"), true, true) { passes = Gtk::manage(new Adjuster (M("TP_SHARPENEDGE_PASSES"),1,4,1,2)); passes->setAdjusterListener (this); @@ -52,7 +44,6 @@ SharpenEdge::SharpenEdge () : FoldableToolPanel(this) { show (); - enaconn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &SharpenEdge::enabled_toggled) ); chanthreeconn = threechannels->signal_toggled().connect( sigc::mem_fun(*this, &SharpenEdge::chanthree_toggled) ); } @@ -62,13 +53,11 @@ void SharpenEdge::read(const ProcParams* pp, const ParamsEdited* pedited) { if(pedited ){ passes->setEditedState (pedited->sharpenEdge.passes ? Edited : UnEdited); amount->setEditedState (pedited->sharpenEdge.amount ? Edited : UnEdited); - enabled->set_inconsistent (!pedited->sharpenEdge.enabled); + set_inconsistent (multiImage && !pedited->sharpenEdge.enabled); threechannels->set_inconsistent (!pedited->sharpenEdge.threechannels); } - enaconn.block (true); - enabled->set_active (pp->sharpenEdge.enabled); - enaconn.block (false); - lastEnabled = pp->sharpenEdge.enabled; + + setEnabled(pp->sharpenEdge.enabled); chanthreeconn.block (true); threechannels->set_active (pp->sharpenEdge.threechannels); @@ -82,13 +71,13 @@ void SharpenEdge::read(const ProcParams* pp, const ParamsEdited* pedited) { } void SharpenEdge::write( ProcParams* pp, ParamsEdited* pedited) { - pp->sharpenEdge.enabled = enabled->get_active (); + pp->sharpenEdge.enabled = getEnabled(); pp->sharpenEdge.passes = (int)passes->getValue(); pp->sharpenEdge.amount = amount->getValue (); pp->sharpenEdge.threechannels = threechannels->get_active (); if (pedited) { - pedited->sharpenEdge.enabled = !enabled->get_inconsistent(); + pedited->sharpenEdge.enabled = !get_inconsistent(); pedited->sharpenEdge.passes = passes->getEditedState (); pedited->sharpenEdge.amount = amount->getEditedState (); pedited->sharpenEdge.threechannels = !threechannels->get_inconsistent(); @@ -96,26 +85,12 @@ void SharpenEdge::write( ProcParams* pp, ParamsEdited* pedited) { } -void SharpenEdge::enabled_toggled () { - - if (batchMode) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaconn.block (true); - enabled->set_active (false); - enaconn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } - +void SharpenEdge::enabledChanged () { if (listener) { - if (enabled->get_active ()) + if (get_inconsistent()) + listener->panelChanged (EvSharpenEdgeEnabled, M("GENERAL_UNCHANGED")); + else if (getEnabled()) listener->panelChanged (EvSharpenEdgeEnabled, M("GENERAL_ENABLED")); - //listener->panelChanged (EvMLunifor, M("GENERAL_ENABLED")); - else listener->panelChanged (EvSharpenEdgeEnabled, M("GENERAL_DISABLED")); } @@ -136,7 +111,7 @@ void SharpenEdge::chanthree_toggled () { lastchanthree = threechannels->get_active (); } - if (listener && enabled->get_active ()) { + if (listener && getEnabled()) { if (threechannels->get_active ()) listener->panelChanged (EvSharpenEdgeThreechannels, M("GENERAL_ENABLED")); else @@ -145,7 +120,7 @@ void SharpenEdge::chanthree_toggled () { } void SharpenEdge::adjusterChanged (Adjuster* a, double newval) { - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { Glib::ustring value = a->getTextValue(); if (a == passes ) diff --git a/rtgui/sharpenedge.h b/rtgui/sharpenedge.h index e0a0b3c1f..30856a5ff 100644 --- a/rtgui/sharpenedge.h +++ b/rtgui/sharpenedge.h @@ -32,13 +32,10 @@ class SharpenEdge : public ToolParamBlock, public AdjusterListener, public Folda protected: - Gtk::CheckButton* enabled; Adjuster* passes; Adjuster* amount; Gtk::CheckButton* threechannels; - bool lastEnabled; - sigc::connection enaconn; sigc::connection chanthreeconn; bool lastchanthree; @@ -54,7 +51,7 @@ public: void setAdjusterBehavior (bool amountadd, bool passadd); void adjusterChanged (Adjuster* a, double newval); - void enabled_toggled (); + void enabledChanged (); void chanthree_toggled (); }; diff --git a/rtgui/sharpening.cc b/rtgui/sharpening.cc index 4bc66a71a..b94b13e50 100644 --- a/rtgui/sharpening.cc +++ b/rtgui/sharpening.cc @@ -24,22 +24,14 @@ using namespace rtengine; using namespace rtengine::procparams; -Sharpening::Sharpening () : FoldableToolPanel(this) { +Sharpening::Sharpening () : FoldableToolPanel(this,"sharpening", M("TP_SHARPENING_LABEL"), true, true) { std::vector milestones; milestones.push_back( GradientMilestone(0.0, 0.0, 0.0, 0.0) ); milestones.push_back( GradientMilestone(1.0, 1.0, 1.0, 1.0) ); - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_tooltip_markup (M("TP_SHARPENING_TOOLTIP")); + setEnabledTooltipMarkup(M("TP_SHARPENING_TOOLTIP")); - enabled->set_active (true); - pack_start(*enabled); - enabled->show (); - Gtk::HSeparator *hsep6aa = Gtk::manage (new Gtk::HSeparator()); - pack_start(*hsep6aa, Gtk::PACK_SHRINK, 2); - hsep6aa->show (); - Gtk::HBox* hb = Gtk::manage (new Gtk::HBox ()); hb->set_border_width (4); hb->show (); @@ -139,10 +131,9 @@ Sharpening::Sharpening () : FoldableToolPanel(this) { usm->reference (); rld->reference (); - enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &Sharpening::enabled_toggled) ); - eonlyConn = edgesonly->signal_toggled().connect( sigc::mem_fun(*this, &Sharpening::edgesonly_toggled) ); - hcConn = halocontrol->signal_toggled().connect( sigc::mem_fun(*this, &Sharpening::halocontrol_toggled) ); - method->signal_changed().connect( sigc::mem_fun(*this, &Sharpening::method_changed) ); + eonlyConn = edgesonly->signal_toggled().connect( sigc::mem_fun(*this, &Sharpening::edgesonly_toggled) ); + hcConn = halocontrol->signal_toggled().connect( sigc::mem_fun(*this, &Sharpening::halocontrol_toggled) ); + method->signal_changed().connect( sigc::mem_fun(*this, &Sharpening::method_changed) ); } Sharpening::~Sharpening () { @@ -170,15 +161,12 @@ void Sharpening::read (const ProcParams* pp, const ParamsEdited* pedited) { diter->setEditedState (pedited->sharpening.deconviter ? Edited : UnEdited); ddamping->setEditedState (pedited->sharpening.deconvdamping ? Edited : UnEdited); - enabled->set_inconsistent (multiImage && !pedited->sharpening.enabled); halocontrol->set_inconsistent (multiImage && !pedited->sharpening.halocontrol); edgesonly->set_inconsistent (multiImage && !pedited->sharpening.edgesonly); + set_inconsistent (multiImage && !pedited->sharpening.enabled); } - enaConn.block (true); - enabled->set_active (pp->sharpening.enabled); - enaConn.block (false); - lastEnabled = pp->sharpening.enabled; + setEnabled (pp->sharpening.enabled); eonlyConn.block (true); edgesonly->set_active (pp->sharpening.edgesonly); @@ -225,7 +213,7 @@ void Sharpening::read (const ProcParams* pp, const ParamsEdited* pedited) { void Sharpening::write (ProcParams* pp, ParamsEdited* pedited) { pp->sharpening.amount = (int)amount->getValue(); - pp->sharpening.enabled = enabled->get_active (); + pp->sharpening.enabled = getEnabled (); pp->sharpening.radius = radius->getValue (); pp->sharpening.threshold = threshold->getValue (); pp->sharpening.edgesonly = edgesonly->get_active (); @@ -257,7 +245,7 @@ void Sharpening::write (ProcParams* pp, ParamsEdited* pedited) { pedited->sharpening.method = method->get_active_row_number()!=2; pedited->sharpening.halocontrol = !halocontrol->get_inconsistent(); pedited->sharpening.edgesonly = !edgesonly->get_inconsistent(); - pedited->sharpening.enabled = !enabled->get_inconsistent(); + pedited->sharpening.enabled = !get_inconsistent(); } } @@ -302,7 +290,7 @@ void Sharpening::setDefaults (const ProcParams* defParams, const ParamsEdited* p void Sharpening::adjusterChanged (Adjuster* a, double newval) { - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { Glib::ustring costr; if (a==radius || a==dradius) @@ -335,30 +323,17 @@ void Sharpening::adjusterChanged (Adjuster* a, double newval) { //void Sharpening::adjusterChanged (ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight) { void Sharpening::adjusterChanged (ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight) { - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvShrThresh, threshold->getHistoryString()); } } -void Sharpening::enabled_toggled () { - - if (multiImage) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaConn.block (true); - enabled->set_active (false); - enaConn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } +void Sharpening::enabledChanged () { if (listener) { - if (enabled->get_inconsistent()) + if (get_inconsistent()) listener->panelChanged (EvShrEnabled, M("GENERAL_UNCHANGED")); - else if (enabled->get_active ()) + else if (getEnabled()) listener->panelChanged (EvShrEnabled, M("GENERAL_ENABLED")); else listener->panelChanged (EvShrEnabled, M("GENERAL_DISABLED")); @@ -386,7 +361,7 @@ void Sharpening::edgesonly_toggled () { edgebin->pack_start (*edgebox); } - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { if (edgesonly->get_inconsistent()) listener->panelChanged (EvShrEdgeOnly, M("GENERAL_INITIALVALUES")); else if (edgesonly->get_active ()) @@ -417,7 +392,7 @@ void Sharpening::halocontrol_toggled () { hcbin->pack_start (*hcbox); } - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { if (halocontrol->get_inconsistent()) listener->panelChanged (EvShrHaloControl, M("GENERAL_INITIALVALUES")); else if (halocontrol->get_active ()) @@ -432,12 +407,12 @@ void Sharpening::method_changed () { removeIfThere (this, usm, false); removeIfThere (this, rld, false); - if (method->get_active_row_number()==0) - pack_start (*usm); - else if (method->get_active_row_number()==1) + if (method->get_active_row_number()==0) + pack_start (*usm); + else if (method->get_active_row_number()==1) pack_start (*rld); - if (listener && (multiImage||enabled->get_active()) ) + if (listener && (multiImage||getEnabled()) ) listener->panelChanged (EvShrMethod, method->get_active_text ()); } diff --git a/rtgui/sharpening.h b/rtgui/sharpening.h index c9b8705d8..be2c01ad0 100644 --- a/rtgui/sharpening.h +++ b/rtgui/sharpening.h @@ -34,7 +34,7 @@ class Sharpening : public ToolParamBlock, public ThresholdAdjusterListener, publ Adjuster* diter; Gtk::VBox* usm; Gtk::VBox* rld; - + Adjuster* radius; Adjuster* amount; Adjuster* eradius; @@ -45,18 +45,13 @@ class Sharpening : public ToolParamBlock, public ThresholdAdjusterListener, publ Gtk::VBox* edgebox; Gtk::VBox* hcbox; ThresholdAdjuster* threshold; - Gtk::CheckButton* enabled; - bool lastEnabled; - sigc::connection enaConn; - Gtk::CheckButton* edgesonly; + Gtk::CheckButton* edgesonly; bool lastEdgesOnly; sigc::connection eonlyConn; - Gtk::CheckButton* halocontrol; + Gtk::CheckButton* halocontrol; bool lastHaloControl; sigc::connection hcConn; - - public: Sharpening (); @@ -69,7 +64,7 @@ class Sharpening : public ToolParamBlock, public ThresholdAdjusterListener, publ void adjusterChanged (Adjuster* a, double newval); void adjusterChanged (ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight); - void enabled_toggled (); + void enabledChanged (); void edgesonly_toggled (); void halocontrol_toggled (); void method_changed (); diff --git a/rtgui/sharpenmicro.cc b/rtgui/sharpenmicro.cc index f778fbf85..21c3d67dd 100644 --- a/rtgui/sharpenmicro.cc +++ b/rtgui/sharpenmicro.cc @@ -27,18 +27,9 @@ using namespace rtengine; using namespace rtengine::procparams; -SharpenMicro::SharpenMicro () : FoldableToolPanel(this) { +SharpenMicro::SharpenMicro () : FoldableToolPanel(this, "sharpenmicro", M("TP_SHARPENMICRO_LABEL"), true, true) { - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_active (true); - enabled->set_tooltip_markup (M("TP_SHARPENING_TOOLTIP")); - - pack_start(*enabled, Gtk::PACK_SHRINK, 0); - enabled->show (); - - Gtk::HSeparator *hsep1 = Gtk::manage (new Gtk::HSeparator()); - hsep1->show (); - pack_start (*hsep1); + setEnabledTooltipMarkup(M("TP_SHARPENING_TOOLTIP")); amount= Gtk::manage(new Adjuster (M("TP_SHARPENMICRO_AMOUNT"),0,100,1,20)); amount->setAdjusterListener (this); @@ -59,7 +50,6 @@ SharpenMicro::SharpenMicro () : FoldableToolPanel(this) { show (); - enaconn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &SharpenMicro::enabled_toggled) ); matrixconn = matrix->signal_toggled().connect( sigc::mem_fun(*this, &SharpenMicro::matrix_toggled) ); } @@ -67,15 +57,13 @@ void SharpenMicro::read(const ProcParams* pp, const ParamsEdited* pedited) { disableListener (); if(pedited ){ - enabled->set_inconsistent (!pedited->sharpenMicro.enabled); + set_inconsistent (multiImage && !pedited->sharpenMicro.enabled); matrix->set_inconsistent (!pedited->sharpenMicro.matrix); amount->setEditedState (pedited->sharpenMicro.amount ? Edited : UnEdited); uniformity->setEditedState (pedited->sharpenMicro.uniformity ? Edited : UnEdited); } - enaconn.block (true); - enabled->set_active (pp->sharpenMicro.enabled); - enaconn.block (false); - lastEnabled = pp->sharpenMicro.enabled; + + setEnabled(pp->sharpenMicro.enabled); matrixconn.block (true); matrix->set_active (pp->sharpenMicro.matrix); @@ -89,39 +77,28 @@ void SharpenMicro::read(const ProcParams* pp, const ParamsEdited* pedited) { } void SharpenMicro::write( ProcParams* pp, ParamsEdited* pedited) { - pp->sharpenMicro.enabled = enabled->get_active (); + pp->sharpenMicro.enabled = getEnabled(); pp->sharpenMicro.matrix = matrix->get_active (); pp->sharpenMicro.amount = amount->getValue (); pp->sharpenMicro.uniformity = uniformity->getValue (); if (pedited) { - pedited->sharpenMicro.enabled = !enabled->get_inconsistent(); + pedited->sharpenMicro.enabled = !get_inconsistent(); pedited->sharpenMicro.matrix = !matrix->get_inconsistent(); pedited->sharpenMicro.amount = amount->getEditedState (); pedited->sharpenMicro.uniformity = uniformity->getEditedState (); } } -void SharpenMicro::enabled_toggled () { - if (batchMode) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaconn.block (true); - enabled->set_active (false); - enaconn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } +void SharpenMicro::enabledChanged () { if (listener) { - if (enabled->get_active ()) + if (get_inconsistent()) + listener->panelChanged (EvSharpenMicroEnabled, M("GENERAL_UNCHANGED")); + else if (getEnabled()) listener->panelChanged (EvSharpenMicroEnabled, M("GENERAL_ENABLED")); else listener->panelChanged (EvSharpenMicroEnabled, M("GENERAL_DISABLED")); - } } @@ -139,7 +116,7 @@ void SharpenMicro::matrix_toggled () { lastmatrix = matrix->get_active (); } - if (listener && enabled->get_active ()) { + if (listener && getEnabled()) { if (matrix->get_active ()) listener->panelChanged (EvSharpenMicroMatrix, M("GENERAL_ENABLED")); else @@ -148,7 +125,7 @@ void SharpenMicro::matrix_toggled () { } void SharpenMicro::adjusterChanged (Adjuster* a, double newval) { - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { Glib::ustring value = a->getTextValue(); if (a == amount) listener->panelChanged (EvSharpenMicroAmount, value ); diff --git a/rtgui/sharpenmicro.h b/rtgui/sharpenmicro.h index c995b17d5..7cf0f0384 100644 --- a/rtgui/sharpenmicro.h +++ b/rtgui/sharpenmicro.h @@ -32,13 +32,10 @@ class SharpenMicro : public ToolParamBlock, public AdjusterListener, public Fold protected: - Gtk::CheckButton* enabled; Gtk::CheckButton* matrix; Adjuster* amount; Adjuster* uniformity; - bool lastEnabled; - sigc::connection enaconn; sigc::connection matrixconn; bool lastmatrix; @@ -54,7 +51,7 @@ public: void setAdjusterBehavior (bool amountadd, bool uniformityadd ); void adjusterChanged (Adjuster* a, double newval); - void enabled_toggled (); + void enabledChanged (); void matrix_toggled (); diff --git a/rtgui/tonecurve.cc b/rtgui/tonecurve.cc index 2e439e1f3..aa0abdbe8 100644 --- a/rtgui/tonecurve.cc +++ b/rtgui/tonecurve.cc @@ -26,7 +26,7 @@ using namespace rtengine; using namespace rtengine::procparams; -ToneCurve::ToneCurve () : FoldableToolPanel(this) { +ToneCurve::ToneCurve () : FoldableToolPanel(this, "tonecurve", M("TP_EXPOSURE_LABEL")) { CurveListener::setMulti(true); diff --git a/rtgui/toolpanel.cc b/rtgui/toolpanel.cc index 4300b07ee..55399fda6 100644 --- a/rtgui/toolpanel.cc +++ b/rtgui/toolpanel.cc @@ -75,11 +75,11 @@ ToolVBox::ToolVBox() { void ToolVBox::updateStyle() { if (options.slimUI) { - set_spacing(3); // Vertical space between tools + set_spacing(1); // Vertical space between tools set_border_width(1); // Space separating the tab's frame and the tools } else { - set_spacing(3); // Vertical space between tools + set_spacing(2); // Vertical space between tools set_border_width(1); // Space separating the tab's frame and the tools 3 } } @@ -107,12 +107,32 @@ void ToolParamBlock::on_style_changed (const Glib::RefPtr& style) { updateStyle(); } -FoldableToolPanel::FoldableToolPanel(Gtk::Box* content) : ToolPanel(), parentContainer(NULL), exp(NULL) { +FoldableToolPanel::FoldableToolPanel(Gtk::Box* content, Glib::ustring toolName, Glib::ustring UILabel, bool need11, bool useEnabled) : ToolPanel(toolName, need11), parentContainer(NULL), exp(NULL), lastEnabled(true) +{ + if (!content) + return; - exp = Gtk::manage (new Gtk::Expander ()); - //exp->set_border_width (5); - exp->set_use_markup (true); +// exp->set_border_width (5); +// exp->set_use_markup (true); + if (need11) { + Gtk::HBox *titleHBox = Gtk::manage(new Gtk::HBox()); + + Gtk::Label *label = Gtk::manage(new Gtk::Label()); + label->set_markup(Glib::ustring("") + escapeHtmlChars(UILabel) + Glib::ustring("")); + label->set_alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER); + titleHBox->pack_start(*label, Gtk::PACK_EXPAND_WIDGET, 0); + + RTImage *image = Gtk::manage (new RTImage("zoom-100-identifier.png")); + image->set_tooltip_text(M("TP_GENERAL_11SCALE_TOOLTIP")); + titleHBox->pack_end(*image, Gtk::PACK_SHRINK, 0); + + exp = Gtk::manage (new MyExpander (useEnabled, titleHBox)); + } + else { + exp = Gtk::manage (new MyExpander (useEnabled, UILabel)); + } exp->signal_button_release_event().connect_notify( sigc::mem_fun(this, &FoldableToolPanel::foldThemAll) ); + enaConn = signal_enabled_toggled().connect( sigc::mem_fun(*this, &FoldableToolPanel::enabled_toggled) ); Frame2* pframe = Gtk::manage (new Frame2 (content)); @@ -126,7 +146,7 @@ FoldableToolPanel::FoldableToolPanel(Gtk::Box* content) : ToolPanel(), parentCon } void FoldableToolPanel::foldThemAll (GdkEventButton* event) { - if (event->button == 3) { + if (event->button == 3) { if (listener) (static_cast(listener))->foldAllButOne( parentContainer, this); else @@ -134,20 +154,51 @@ void FoldableToolPanel::foldThemAll (GdkEventButton* event) { } } -void FoldableToolPanel::setLabel (Glib::ustring label, bool need100Percent) { - if (!need100Percent) - exp->set_label(Glib::ustring("") + label + Glib::ustring("")); - else { - Gtk::Label *labelWidget = Gtk::manage (new Gtk::Label(Glib::ustring("") + label + Glib::ustring(""))); - labelWidget->set_use_markup(); - RTImage *image = Gtk::manage (new RTImage("zoom-100-identifier.png")); - image->set_tooltip_text(M("TP_GENERAL_11SCALE_TOOLTIP")); - Gtk::HBox *hbox = Gtk::manage (new Gtk::HBox()); +void FoldableToolPanel::enabled_toggled() { + if (multiImage) { + if (exp->get_inconsistent()) { + exp->set_inconsistent (false); + enaConn.block (true); + exp->setEnabled (false); + enaConn.block (false); + } + else if (lastEnabled) + exp->set_inconsistent (true); - hbox->set_spacing(4); - hbox->pack_start(*labelWidget, false, false, 0); - hbox->pack_end(*image, false, false, 0); - exp->set_label_widget(*hbox); - exp->set_label_fill(); + lastEnabled = exp->getEnabled(); } + enabledChanged(); } + +bool FoldableToolPanel::get_inconsistent() { + return exp->get_inconsistent(); +} + +void FoldableToolPanel::set_inconsistent(bool isInconsistent) { + exp->set_inconsistent(isInconsistent); +} + +bool FoldableToolPanel::getEnabled() { + return exp->getEnabled(); +} + +// do not emit the enabled_toggled event +void FoldableToolPanel::setEnabled(bool isEnabled) { + enaConn.block (true); + exp->setEnabled(isEnabled); + lastEnabled = isEnabled; + enaConn.block (false); +} + +void FoldableToolPanel::setEnabledTooltipMarkup(Glib::ustring tooltipMarkup) { + if (exp) + exp->set_tooltip_markup(tooltipMarkup); +} + +void FoldableToolPanel::setEnabledTooltipText(Glib::ustring tooltipText) { + if (exp) + exp->set_tooltip_text(tooltipText); +} + + + diff --git a/rtgui/toolpanel.h b/rtgui/toolpanel.h index b6a0a737c..cf2dad030 100644 --- a/rtgui/toolpanel.h +++ b/rtgui/toolpanel.h @@ -23,6 +23,7 @@ #include #include "../rtengine/rtengine.h" #include "../rtengine/procparams.h" +#include "guiutils.h" #include "multilangmgr.h" #include "paramsedited.h" #include "edit.h" @@ -61,19 +62,21 @@ class ToolParamBlock : public Gtk::VBox { class ToolPanel { protected: + Glib::ustring toolName; ToolPanelListener* listener; ToolPanelListener* tmp; bool batchMode; // True if the ToolPanel is used in Batch mode bool multiImage; // True if more than one image are being edited at the same time (also imply that batchMode=true), false otherwise + bool need100Percent; public: - ToolPanel () : listener(NULL), tmp(NULL), batchMode(false), multiImage(false) {} + ToolPanel (Glib::ustring toolName="", bool need11=false) : toolName(toolName), listener(NULL), tmp(NULL), batchMode(false), multiImage(false), need100Percent(need11) {} virtual ~ToolPanel() {} virtual void setParent (Gtk::Box* parent) {} virtual Gtk::Box* getParent () { return NULL; } - virtual Gtk::Expander* getExpander () { return NULL; } + virtual MyExpander* getExpander () { return NULL; } virtual void setExpanded (bool expanded) {} virtual bool getExpanded () { return false; } void setMultiImage (bool m) { multiImage = m; } @@ -103,19 +106,36 @@ class FoldableToolPanel : public ToolPanel { protected: Gtk::Box* parentContainer; + MyExpander* exp; + bool lastEnabled; + sigc::connection enaConn; void foldThemAll (GdkEventButton* event); - Gtk::Expander* exp; + void enabled_toggled(); public: - FoldableToolPanel(Gtk::Box* content); + FoldableToolPanel(Gtk::Box* content, Glib::ustring toolName, Glib::ustring UILabel, bool need11=false, bool useEnabled=false); - Gtk::Expander * getExpander() { return exp; } + MyExpander* getExpander() { return exp; } void setExpanded (bool expanded) { if (exp) exp->set_expanded( expanded ); } bool getExpanded () { if (exp) return exp->get_expanded(); return false; } void setParent (Gtk::Box* parent) { parentContainer = parent; } Gtk::Box* getParent () { return parentContainer; } - void setLabel (Glib::ustring label, bool need100Percent=false); + + virtual void enabledChanged () {} + + bool getUseEnabled () { if (exp) return exp->getUseEnabled(); else return true; } + bool getEnabled(); // related to the enabled/disabled state + void setEnabled(bool isActive); // related to the enabled/disabled state + void setEnabledTooltipMarkup(Glib::ustring tooltipMarkup); + void setEnabledTooltipText(Glib::ustring tooltipText); + bool get_inconsistent(); // related to the enabled/disabled state + void set_inconsistent(bool isInconsistent); // related to the enabled/disabled state + + // Functions that want to receive an enabled/disabled event from this class + // will have to receive it from MyExpander directly, we do not create + // a relaying event + MyExpander::type_signal_enabled_toggled signal_enabled_toggled() { return exp->signal_enabled_toggled(); } }; #endif diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index 8724c48f4..f717f9040 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -71,7 +71,7 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc(NULL) { icm = Gtk::manage (new ICMPanel ()); exifpanel = Gtk::manage (new ExifPanel ()); iptcpanel = Gtk::manage (new IPTCPanel ()); - wavelet = Gtk::manage (new Wavelet ()); + wavelet = Gtk::manage (new Wavelet ()); dirpyrequalizer = Gtk::manage (new DirPyrEqualizer ()); hsvequalizer = Gtk::manage (new HSVEqualizer ()); filmSimulation = Gtk::manage (new FilmSimulation ()); @@ -97,51 +97,51 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc(NULL) { // Best -> low ISO // Medium -> High ISO - addPanel (colorPanel, whitebalance, M("TP_WBALANCE_LABEL")); toolPanels.push_back (whitebalance); - addPanel (exposurePanel, toneCurve, M("TP_EXPOSURE_LABEL")); toolPanels.push_back (toneCurve); - addPanel (colorPanel, vibrance, M("TP_VIBRANCE_LABEL")); toolPanels.push_back (vibrance); - addPanel (colorPanel, chmixer, M("TP_CHMIXER_LABEL")); toolPanels.push_back (chmixer); - addPanel (colorPanel, blackwhite, M("TP_BWMIX_LABEL")); toolPanels.push_back (blackwhite); - addPanel (exposurePanel, shadowshighlights, M("TP_SHADOWSHLIGHTS_LABEL")); toolPanels.push_back (shadowshighlights); - addPanel (detailsPanel, sharpening, M("TP_SHARPENING_LABEL"), true); toolPanels.push_back (sharpening); - addPanel (detailsPanel, sharpenEdge, M("TP_SHARPENEDGE_LABEL"), true); toolPanels.push_back (sharpenEdge); - addPanel (detailsPanel, sharpenMicro, M("TP_SHARPENMICRO_LABEL"), true); toolPanels.push_back (sharpenMicro); - addPanel (colorPanel, hsvequalizer, M("TP_HSVEQUALIZER_LABEL")); toolPanels.push_back (hsvequalizer); - addPanel (colorPanel, filmSimulation, M("TP_FILMSIMULATION_LABEL")); toolPanels.push_back (filmSimulation); - addPanel (colorPanel, rgbcurves, M("TP_RGBCURVES_LABEL")); toolPanels.push_back (rgbcurves); - addPanel (colorPanel, colortoning, M("TP_COLORTONING_LABEL")); toolPanels.push_back (colortoning); - addPanel (exposurePanel, epd, M("TP_EPD_LABEL"), true); toolPanels.push_back (epd); - addPanel (exposurePanel, pcvignette, M("TP_PCVIGNETTE_LABEL")); toolPanels.push_back (pcvignette); - addPanel (exposurePanel, gradient, M("TP_GRADIENT_LABEL")); toolPanels.push_back (gradient); - addPanel (exposurePanel, lcurve, M("TP_LABCURVE_LABEL")); toolPanels.push_back (lcurve); - addPanel (exposurePanel, colorappearance, M("TP_COLORAPP_LABEL")); toolPanels.push_back (colorappearance); - addPanel (detailsPanel, impulsedenoise, M("TP_IMPULSEDENOISE_LABEL"), true); toolPanels.push_back (impulsedenoise); - addPanel (detailsPanel, dirpyrdenoise, M("TP_DIRPYRDENOISE_LABEL"), true); toolPanels.push_back (dirpyrdenoise); - addPanel (detailsPanel, defringe, M("TP_DEFRINGE_LABEL"), true); toolPanels.push_back (defringe); - addPanel (detailsPanel, dirpyrequalizer, M("TP_DIRPYREQUALIZER_LABEL"), true); toolPanels.push_back (dirpyrequalizer); - addPanel (detailsPanel, wavelet, M("TP_WAVELET_LABEL"),true); toolPanels.push_back (wavelet); - addPanel (transformPanel, crop, M("TP_CROP_LABEL")); toolPanels.push_back (crop); - addPanel (transformPanel, resize, M("TP_RESIZE_LABEL")); toolPanels.push_back (resize); - addPanel (transformPanel, lensgeom, M("TP_LENSGEOM_LABEL")); toolPanels.push_back (lensgeom); - addPanel (lensgeom->getPackBox(), rotate, M("TP_ROTATE_LABEL")); toolPanels.push_back (rotate); - addPanel (lensgeom->getPackBox(), perspective, M("TP_PERSPECTIVE_LABEL")); toolPanels.push_back (perspective); - addPanel (lensgeom->getPackBox(), lensProf, M("TP_LENSPROFILE_LABEL")); toolPanels.push_back (lensProf); - addPanel (lensgeom->getPackBox(), distortion, M("TP_DISTORTION_LABEL")); toolPanels.push_back (distortion); - addPanel (lensgeom->getPackBox(), cacorrection, M("TP_CACORRECTION_LABEL")); toolPanels.push_back (cacorrection); - addPanel (lensgeom->getPackBox(), vignetting, M("TP_VIGNETTING_LABEL")); toolPanels.push_back (vignetting); - addPanel (colorPanel, icm, M("TP_ICM_LABEL")); toolPanels.push_back (icm); - addPanel (rawPanel, sensorbayer, M("TP_RAW_SENSOR_BAYER_LABEL")); toolPanels.push_back (sensorbayer); - addPanel (sensorbayer->getPackBox(), bayerprocess, M("TP_RAW_LABEL"), true); toolPanels.push_back (bayerprocess); - addPanel (sensorbayer->getPackBox(), bayerrawexposure, M("TP_EXPOS_BLACKPOINT_LABEL")); toolPanels.push_back (bayerrawexposure); - addPanel (sensorbayer->getPackBox(), bayerpreprocess, M("TP_PREPROCESS_LABEL"), true); toolPanels.push_back (bayerpreprocess); - addPanel (sensorbayer->getPackBox(), rawcacorrection, M("TP_CHROMATABERR_LABEL")); toolPanels.push_back (rawcacorrection); - addPanel (rawPanel, sensorxtrans, M("TP_RAW_SENSOR_XTRANS_LABEL")); toolPanels.push_back (sensorxtrans); - addPanel (sensorxtrans->getPackBox(), xtransprocess, M("TP_RAW_LABEL"), true); toolPanels.push_back (xtransprocess); - addPanel (sensorxtrans->getPackBox(), xtransrawexposure, M("TP_EXPOS_BLACKPOINT_LABEL")); toolPanels.push_back (xtransrawexposure); - addPanel (rawPanel, rawexposure, M("TP_EXPOS_WHITEPOINT_LABEL")); toolPanels.push_back (rawexposure); - addPanel (rawPanel, preprocess, M("TP_PREPROCESS_LABEL"), true); toolPanels.push_back (preprocess); - addPanel (rawPanel, darkframe, M("TP_DARKFRAME_LABEL")); toolPanels.push_back (darkframe); - addPanel (rawPanel, flatfield, M("TP_FLATFIELD_LABEL")); toolPanels.push_back (flatfield); + addPanel (colorPanel, whitebalance); toolPanels.push_back (whitebalance); + addPanel (exposurePanel, toneCurve); toolPanels.push_back (toneCurve); + addPanel (colorPanel, vibrance); toolPanels.push_back (vibrance); + addPanel (colorPanel, chmixer); toolPanels.push_back (chmixer); // << TODO: Add "Enabled" + addPanel (colorPanel, blackwhite); toolPanels.push_back (blackwhite); + addPanel (exposurePanel, shadowshighlights); toolPanels.push_back (shadowshighlights); + addPanel (detailsPanel, sharpening); toolPanels.push_back (sharpening); + addPanel (detailsPanel, sharpenEdge); toolPanels.push_back (sharpenEdge); + addPanel (detailsPanel, sharpenMicro); toolPanels.push_back (sharpenMicro); + addPanel (colorPanel, hsvequalizer); toolPanels.push_back (hsvequalizer); // << TODO: Add "Enabled" + addPanel (colorPanel, filmSimulation); toolPanels.push_back (filmSimulation); + addPanel (colorPanel, rgbcurves); toolPanels.push_back (rgbcurves); // << TODO: Add "Enabled" + addPanel (colorPanel, colortoning); toolPanels.push_back (colortoning); + addPanel (exposurePanel, epd); toolPanels.push_back (epd); + addPanel (exposurePanel, pcvignette); toolPanels.push_back (pcvignette); + addPanel (exposurePanel, gradient); toolPanels.push_back (gradient); + addPanel (exposurePanel, lcurve); toolPanels.push_back (lcurve); // << TODO: Add "Enabled" ??? + addPanel (exposurePanel, colorappearance); toolPanels.push_back (colorappearance); + addPanel (detailsPanel, impulsedenoise); toolPanels.push_back (impulsedenoise); + addPanel (detailsPanel, dirpyrdenoise); toolPanels.push_back (dirpyrdenoise); + addPanel (detailsPanel, defringe); toolPanels.push_back (defringe); + addPanel (detailsPanel, dirpyrequalizer); toolPanels.push_back (dirpyrequalizer); + addPanel (detailsPanel, wavelet); toolPanels.push_back (wavelet); + addPanel (transformPanel, crop); toolPanels.push_back (crop); + addPanel (transformPanel, resize); toolPanels.push_back (resize); + addPanel (transformPanel, lensgeom); toolPanels.push_back (lensgeom); + addPanel (lensgeom->getPackBox(), rotate); toolPanels.push_back (rotate); + addPanel (lensgeom->getPackBox(), perspective); toolPanels.push_back (perspective); + addPanel (lensgeom->getPackBox(), lensProf); toolPanels.push_back (lensProf); + addPanel (lensgeom->getPackBox(), distortion); toolPanels.push_back (distortion); + addPanel (lensgeom->getPackBox(), cacorrection); toolPanels.push_back (cacorrection); + addPanel (lensgeom->getPackBox(), vignetting); toolPanels.push_back (vignetting); + addPanel (colorPanel, icm); toolPanels.push_back (icm); + addPanel (rawPanel, sensorbayer); toolPanels.push_back (sensorbayer); + addPanel (sensorbayer->getPackBox(), bayerprocess); toolPanels.push_back (bayerprocess); + addPanel (sensorbayer->getPackBox(), bayerrawexposure); toolPanels.push_back (bayerrawexposure); + addPanel (sensorbayer->getPackBox(), bayerpreprocess); toolPanels.push_back (bayerpreprocess); + addPanel (sensorbayer->getPackBox(), rawcacorrection); toolPanels.push_back (rawcacorrection); + addPanel (rawPanel, sensorxtrans); toolPanels.push_back (sensorxtrans); + addPanel (sensorxtrans->getPackBox(), xtransprocess); toolPanels.push_back (xtransprocess); + addPanel (sensorxtrans->getPackBox(), xtransrawexposure); toolPanels.push_back (xtransrawexposure); + addPanel (rawPanel, rawexposure); toolPanels.push_back (rawexposure); + addPanel (rawPanel, preprocess); toolPanels.push_back (preprocess); + addPanel (rawPanel, darkframe); toolPanels.push_back (darkframe); + addPanel (rawPanel, flatfield); toolPanels.push_back (flatfield); @@ -230,7 +230,7 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc(NULL) { toolBar->setToolBarListener(this); } -void ToolPanelCoordinator::addPanel (Gtk::Box* where, FoldableToolPanel* panel, Glib::ustring label, bool need100Percent) { +void ToolPanelCoordinator::addPanel (Gtk::Box* where, FoldableToolPanel* panel) { // no more separator! /*if (where->children().size()) { @@ -240,7 +240,6 @@ void ToolPanelCoordinator::addPanel (Gtk::Box* where, FoldableToolPanel* panel, }*/ panel->setParent(where); - panel->setLabel(escapeHtmlChars(label), need100Percent); expList.push_back (panel->getExpander()); where->pack_start(*panel->getExpander(), false, false); diff --git a/rtgui/toolpanelcoord.h b/rtgui/toolpanelcoord.h index f637669b8..475e21435 100644 --- a/rtgui/toolpanelcoord.h +++ b/rtgui/toolpanelcoord.h @@ -77,6 +77,7 @@ #include "rgbcurves.h" #include "colortoning.h" #include "filmsimulation.h" +#include "guiutils.h" class ImageEditorCoordinator; @@ -185,11 +186,11 @@ class ToolPanelCoordinator : public ToolPanelListener, Gtk::ScrolledWindow* transformPanelSW; Gtk::ScrolledWindow* rawPanelSW; - std::vector expList; + std::vector expList; bool hasChanged; - void addPanel (Gtk::Box* where, FoldableToolPanel* panel, Glib::ustring label, bool need100Percent=false); + void addPanel (Gtk::Box* where, FoldableToolPanel* panel); void foldThemAll (GdkEventButton* event); void updateVScrollbars (bool hide); void updateTabsHeader (bool useIcons); diff --git a/rtgui/vibrance.cc b/rtgui/vibrance.cc index 149725b93..97f8a0602 100644 --- a/rtgui/vibrance.cc +++ b/rtgui/vibrance.cc @@ -24,7 +24,7 @@ using namespace rtengine; using namespace rtengine::procparams; -Vibrance::Vibrance () : FoldableToolPanel(this) { +Vibrance::Vibrance () : FoldableToolPanel(this, "vibrance", M("TP_VIBRANCE_LABEL"), false, true) { std::vector milestones; float R, G, B; @@ -34,12 +34,6 @@ Vibrance::Vibrance () : FoldableToolPanel(this) { Color::hsv2rgb01(0.14056f, 0.45f, 0.6f, R, G, B); milestones.push_back( GradientMilestone(1.0, double(R), double(G), double(B)) ); - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_active (false); - pack_start(*enabled, Gtk::PACK_SHRINK, 0); - - pack_start (*Gtk::manage (new Gtk::HSeparator())); - saturated = Gtk::manage(new Adjuster (M("TP_VIBRANCE_SATURATED"),-100.,100.,1.,0.)); saturated->setAdjusterListener (this); saturated->set_sensitive(false); @@ -88,7 +82,6 @@ Vibrance::Vibrance () : FoldableToolPanel(this) { show (); - enaconn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &Vibrance::enabled_toggled) ); pskinsconn = protectSkins->signal_toggled().connect( sigc::mem_fun(*this, &Vibrance::protectskins_toggled) ); ashiftconn = avoidColorShift->signal_toggled().connect( sigc::mem_fun(*this, &Vibrance::avoidcolorshift_toggled) ); pastsattogconn = pastSatTog->signal_toggled().connect( sigc::mem_fun(*this, &Vibrance::pastsattog_toggled) ); @@ -102,7 +95,7 @@ void Vibrance::read(const ProcParams* pp, const ParamsEdited* pedited) { disableListener (); if(pedited ){ - enabled->set_inconsistent (!pedited->vibrance.enabled); + set_inconsistent (multiImage && !pedited->vibrance.enabled); pastels->setEditedState (pedited->vibrance.pastels ? Edited : UnEdited); saturated->setEditedState (pedited->vibrance.saturated ? Edited : UnEdited); psThreshold->setEditedState (pedited->vibrance.psthreshold ? Edited : UnEdited); @@ -112,10 +105,7 @@ void Vibrance::read(const ProcParams* pp, const ParamsEdited* pedited) { skinTonesCurve->setUnChanged (!pedited->vibrance.skintonescurve); } - enaconn.block (true); - enabled->set_active (pp->vibrance.enabled); - enaconn.block (false); - lastEnabled = pp->vibrance.enabled; + setEnabled (pp->vibrance.enabled); pskinsconn.block (true); protectSkins->set_active (pp->vibrance.protectskins); @@ -157,7 +147,7 @@ void Vibrance::autoOpenCurve () { } void Vibrance::write( ProcParams* pp, ParamsEdited* pedited) { - pp->vibrance.enabled = enabled->get_active (); + pp->vibrance.enabled = getEnabled (); pp->vibrance.pastels = pastels->getIntValue(); pp->vibrance.saturated = pastSatTog->get_active() ? pp->vibrance.pastels : saturated->getIntValue (); pp->vibrance.psthreshold = psThreshold->getValue (); @@ -167,7 +157,7 @@ void Vibrance::write( ProcParams* pp, ParamsEdited* pedited) { pp->vibrance.skintonescurve = skinTonesCurve->getCurve (); if (pedited) { - pedited->vibrance.enabled = !enabled->get_inconsistent(); + pedited->vibrance.enabled = !get_inconsistent(); pedited->vibrance.pastels = pastels->getEditedState (); pedited->vibrance.saturated = saturated->getEditedState (); pedited->vibrance.psthreshold = psThreshold->getEditedState (); @@ -180,25 +170,14 @@ void Vibrance::write( ProcParams* pp, ParamsEdited* pedited) { } void Vibrance::curveChanged () { - if (listener && enabled->get_active()) listener->panelChanged (EvVibranceSkinTonesCurve, M("HISTORY_CUSTOMCURVE")); + if (listener && getEnabled ()) listener->panelChanged (EvVibranceSkinTonesCurve, M("HISTORY_CUSTOMCURVE")); } -void Vibrance::enabled_toggled () { - if (batchMode) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaconn.block (true); - enabled->set_active (false); - enaconn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); - } - +void Vibrance::enabledChanged () { if (listener) { - if (enabled->get_active ()) + if (get_inconsistent()) + listener->panelChanged (EvVibranceEnabled, M("GENERAL_UNCHANGED")); + if (getEnabled()) listener->panelChanged (EvVibranceEnabled, M("GENERAL_ENABLED")); else listener->panelChanged (EvVibranceEnabled, M("GENERAL_DISABLED")); @@ -219,7 +198,7 @@ void Vibrance::protectskins_toggled () { lastProtectSkins = protectSkins->get_active (); } - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { if (protectSkins->get_active ()) listener->panelChanged (EvVibranceProtectSkins, M("GENERAL_ENABLED")); else @@ -241,7 +220,7 @@ void Vibrance::avoidcolorshift_toggled () { lastAvoidColorShift = avoidColorShift->get_active (); } - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { if (avoidColorShift->get_active ()) listener->panelChanged (EvVibranceAvoidColorShift, M("GENERAL_ENABLED")); else @@ -275,7 +254,7 @@ void Vibrance::pastsattog_toggled () { saturated->set_sensitive(true); } - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { if (pastSatTog->get_active ()) { listener->panelChanged (EvVibrancePastSatTog, M("GENERAL_ENABLED")); } @@ -288,7 +267,7 @@ void Vibrance::adjusterChanged (Adjuster* a, double newval) { if (a == pastels && pastSatTog->get_active()) saturated->setValue (newval); - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { Glib::ustring value = a->getTextValue(); if (a == pastels ) @@ -299,7 +278,7 @@ void Vibrance::adjusterChanged (Adjuster* a, double newval) { } void Vibrance::adjusterChanged (ThresholdAdjuster* a, int newBottom, int newTop) { - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { listener->panelChanged (EvVibrancePastSatThreshold, psThreshold->getHistoryString()); } } diff --git a/rtgui/vibrance.h b/rtgui/vibrance.h index 0c79d686f..4c58f34f5 100644 --- a/rtgui/vibrance.h +++ b/rtgui/vibrance.h @@ -33,7 +33,6 @@ class Vibrance : public ToolParamBlock, public AdjusterListener, public Threshol protected: CurveEditorGroup* curveEditorGG; - Gtk::CheckButton* enabled; Adjuster* pastels; Adjuster* saturated; ThresholdAdjuster* psThreshold; @@ -42,12 +41,10 @@ protected: Gtk::CheckButton* pastSatTog; DiagonalCurveEditor* skinTonesCurve; - bool lastEnabled; bool lastProtectSkins; bool lastAvoidColorShift; bool lastPastSatTog; - sigc::connection enaconn; sigc::connection pskinsconn; sigc::connection ashiftconn; sigc::connection pastsattogconn; @@ -68,7 +65,7 @@ public: void curveChanged (); void autoOpenCurve (); - void enabled_toggled (); + void enabledChanged (); void protectskins_toggled (); void avoidcolorshift_toggled (); void pastsattog_toggled (); diff --git a/rtgui/vignetting.cc b/rtgui/vignetting.cc index 16cb6656b..4781efd3c 100644 --- a/rtgui/vignetting.cc +++ b/rtgui/vignetting.cc @@ -22,7 +22,7 @@ using namespace rtengine; using namespace rtengine::procparams; -Vignetting::Vignetting () : FoldableToolPanel(this) { +Vignetting::Vignetting () : FoldableToolPanel(this, "vignetting", M("TP_VIGNETTING_LABEL")) { amount = Gtk::manage (new Adjuster (M("TP_VIGNETTING_AMOUNT"), -100, 100, 1, 0)); amount->setAdjusterListener (this); diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 019025b98..1f8a82e07 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -27,7 +27,7 @@ using namespace rtengine; using namespace rtengine::procparams; extern Options options; -Wavelet::Wavelet () : FoldableToolPanel(this) { +Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"), true, true) { std::vector milestones; CurveListener::setMulti(true); nextnlevel=7.; @@ -53,11 +53,6 @@ Wavelet::Wavelet () : FoldableToolPanel(this) { milestones2.push_back( GradientMilestone(0.0, 0.0, 0.0, 0.0) ); milestones2.push_back( GradientMilestone(1.0, 1.0, 1.0, 1.0) ); - enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); - enabled->set_active (true); - pack_start(*enabled); - enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::enabledToggled) ); - std::vector defaultCurve; // frame and expand @@ -637,7 +632,7 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) { if (!pedited->wavelet.HSmethod) HSmethod->set_active (1); - enabled->set_inconsistent (!pedited->wavelet.enabled); + set_inconsistent (multiImage && !pedited->wavelet.enabled); ccshape->setUnChanged (!pedited->wavelet.clvcurve); opacityShapeRG->setCurve (pp->wavelet.opacityCurveRG); opacityShapeBY->setCurve (pp->wavelet.opacityCurveBY); @@ -676,9 +671,7 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) { opacityShapeRG->setCurve (pp->wavelet.opacityCurveRG); opacityShapeBY->setCurve (pp->wavelet.opacityCurveBY); - enaConn.block (true); - enabled->set_active (pp->wavelet.enabled); - enaConn.block (false); + setEnabled(pp->wavelet.enabled); avoidConn.block (true); avoid->set_active (pp->wavelet.avoid); avoidConn.block (false); @@ -686,7 +679,6 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) { median->set_active (pp->wavelet.median); medianConn.block (false); lastmedian = pp->wavelet.median; - lastEnabled = pp->wavelet.enabled; lastavoid = pp->wavelet.avoid; rescon->setValue (pp->wavelet.rescon); resconH->setValue (pp->wavelet.resconH); @@ -743,81 +735,81 @@ void Wavelet::autoOpenCurve () { void Wavelet::write (ProcParams* pp, ParamsEdited* pedited) { - pp->wavelet.enabled = enabled->get_active (); - pp->wavelet.avoid = avoid->get_active (); - pp->wavelet.rescon = rescon->getValue(); - pp->wavelet.resconH = resconH->getValue(); - pp->wavelet.reschro = reschro->getValue(); - pp->wavelet.sup = sup->getValue(); - pp->wavelet.sky = sky->getValue(); - pp->wavelet.thres = thres->getValue(); - pp->wavelet.chroma = chroma->getValue(); - pp->wavelet.chro = chro->getValue(); - pp->wavelet.median = median->get_active (); - pp->wavelet.contrast = contrast->getValue(); - pp->wavelet.edgrad = edgrad->getValue(); - pp->wavelet.edgval = edgval->getValue(); - pp->wavelet.edgthresh = edgthresh->getValue(); - pp->wavelet.thr = thr->getValue(); - pp->wavelet.thrH = thrH->getValue(); - pp->wavelet.hueskin = hueskin->getValue (); - pp->wavelet.hueskin2 = hueskin2->getValue (); - pp->wavelet.skinprotect = skinprotect->getValue(); - pp->wavelet.threshold = threshold->getValue(); - pp->wavelet.threshold2 = threshold2->getValue(); - pp->wavelet.hllev = hllev->getValue (); - pp->wavelet.bllev = bllev->getValue (); - pp->wavelet.clvcurve = ccshape->getCurve (); - pp->wavelet.opacityCurveRG = opacityShapeRG->getCurve (); - pp->wavelet.opacityCurveBY = opacityShapeBY->getCurve (); - pp->wavelet.pastlev = pastlev->getValue (); - pp->wavelet.satlev = satlev->getValue (); + pp->wavelet.enabled = getEnabled(); + pp->wavelet.avoid = avoid->get_active (); + pp->wavelet.rescon = rescon->getValue(); + pp->wavelet.resconH = resconH->getValue(); + pp->wavelet.reschro = reschro->getValue(); + pp->wavelet.sup = sup->getValue(); + pp->wavelet.sky = sky->getValue(); + pp->wavelet.thres = thres->getValue(); + pp->wavelet.chroma = chroma->getValue(); + pp->wavelet.chro = chro->getValue(); + pp->wavelet.median = median->get_active (); + pp->wavelet.contrast = contrast->getValue(); + pp->wavelet.edgrad = edgrad->getValue(); + pp->wavelet.edgval = edgval->getValue(); + pp->wavelet.edgthresh = edgthresh->getValue(); + pp->wavelet.thr = thr->getValue(); + pp->wavelet.thrH = thrH->getValue(); + pp->wavelet.hueskin = hueskin->getValue (); + pp->wavelet.hueskin2 = hueskin2->getValue (); + pp->wavelet.skinprotect = skinprotect->getValue(); + pp->wavelet.threshold = threshold->getValue(); + pp->wavelet.threshold2 = threshold2->getValue(); + pp->wavelet.hllev = hllev->getValue (); + pp->wavelet.bllev = bllev->getValue (); + pp->wavelet.clvcurve = ccshape->getCurve (); + pp->wavelet.opacityCurveRG = opacityShapeRG->getCurve (); + pp->wavelet.opacityCurveBY = opacityShapeBY->getCurve (); + pp->wavelet.pastlev = pastlev->getValue (); + pp->wavelet.satlev = satlev->getValue (); for (int i = 0; i < 9; i++) { pp->wavelet.c[i] = (int) correction[i]->getValue(); } pp->wavelet.strength = (int) strength->getValue(); if (pedited) { - pedited->wavelet.enabled = !enabled->get_inconsistent(); - pedited->wavelet.avoid = !avoid->get_inconsistent(); - pedited->wavelet.median = !median->get_inconsistent(); - pedited->wavelet.Lmethod = Lmethod->get_active_row_number() != 8; - pedited->wavelet.CLmethod = CLmethod->get_active_row_number() != 3; - pedited->wavelet.Tilesmethod = Tilesmethod->get_active_row_number() != 2; - pedited->wavelet.CHmethod = CHmethod->get_active_row_number() != 2; - pedited->wavelet.HSmethod = HSmethod->get_active_row_number() != 1; - pedited->wavelet.Dirmethod = Dirmethod->get_active_row_number() != 3; - pedited->wavelet.edgthresh = edgthresh->getEditedState(); - pedited->wavelet.rescon = rescon->getEditedState(); - pedited->wavelet.resconH = resconH->getEditedState(); - pedited->wavelet.reschro = reschro->getEditedState(); - pedited->wavelet.sup = sup->getEditedState(); - pedited->wavelet.sky = sky->getEditedState(); - pedited->wavelet.thres = thres->getEditedState(); - pedited->wavelet.threshold = threshold->getEditedState(); - pedited->wavelet.threshold2 = threshold2->getEditedState(); - pedited->wavelet.chroma = chroma->getEditedState(); - pedited->wavelet.chro = chro->getEditedState(); - pedited->wavelet.contrast = contrast->getEditedState(); - pedited->wavelet.edgrad = edgrad->getEditedState(); - pedited->wavelet.edgval = edgval->getEditedState(); - pedited->wavelet.thr = thr->getEditedState(); - pedited->wavelet.thrH = thrH->getEditedState(); - pedited->wavelet.hueskin = hueskin->getEditedState (); - pedited->wavelet.hueskin2 = hueskin2->getEditedState (); - pedited->wavelet.skinprotect = skinprotect->getEditedState(); - pedited->wavelet.hllev = hllev->getEditedState (); - pedited->wavelet.clvcurve = !ccshape->isUnChanged (); - pedited->wavelet.opacityCurveRG = !opacityShapeRG->isUnChanged (); - pedited->wavelet.opacityCurveBY = !opacityShapeBY->isUnChanged (); - pedited->wavelet.bllev = bllev->getEditedState (); - pedited->wavelet.pastlev = pastlev->getEditedState (); - pedited->wavelet.satlev = satlev->getEditedState (); + pedited->wavelet.enabled = !get_inconsistent(); + pedited->wavelet.avoid = !avoid->get_inconsistent(); + pedited->wavelet.median = !median->get_inconsistent(); + pedited->wavelet.Lmethod = Lmethod->get_active_row_number() != 8; + pedited->wavelet.CLmethod = CLmethod->get_active_row_number() != 3; + pedited->wavelet.Tilesmethod = Tilesmethod->get_active_row_number() != 2; + pedited->wavelet.CHmethod = CHmethod->get_active_row_number() != 2; + pedited->wavelet.HSmethod = HSmethod->get_active_row_number() != 1; + pedited->wavelet.Dirmethod = Dirmethod->get_active_row_number() != 3; + pedited->wavelet.edgthresh = edgthresh->getEditedState(); + pedited->wavelet.rescon = rescon->getEditedState(); + pedited->wavelet.resconH = resconH->getEditedState(); + pedited->wavelet.reschro = reschro->getEditedState(); + pedited->wavelet.sup = sup->getEditedState(); + pedited->wavelet.sky = sky->getEditedState(); + pedited->wavelet.thres = thres->getEditedState(); + pedited->wavelet.threshold = threshold->getEditedState(); + pedited->wavelet.threshold2 = threshold2->getEditedState(); + pedited->wavelet.chroma = chroma->getEditedState(); + pedited->wavelet.chro = chro->getEditedState(); + pedited->wavelet.contrast = contrast->getEditedState(); + pedited->wavelet.edgrad = edgrad->getEditedState(); + pedited->wavelet.edgval = edgval->getEditedState(); + pedited->wavelet.thr = thr->getEditedState(); + pedited->wavelet.thrH = thrH->getEditedState(); + pedited->wavelet.hueskin = hueskin->getEditedState (); + pedited->wavelet.hueskin2 = hueskin2->getEditedState (); + pedited->wavelet.skinprotect = skinprotect->getEditedState(); + pedited->wavelet.hllev = hllev->getEditedState (); + pedited->wavelet.clvcurve = !ccshape->isUnChanged (); + pedited->wavelet.opacityCurveRG = !opacityShapeRG->isUnChanged (); + pedited->wavelet.opacityCurveBY = !opacityShapeBY->isUnChanged (); + pedited->wavelet.bllev = bllev->getEditedState (); + pedited->wavelet.pastlev = pastlev->getEditedState (); + pedited->wavelet.satlev = satlev->getEditedState (); for(int i = 0; i < 9; i++) { - pedited->wavelet.c[i] = correction[i]->getEditedState(); + pedited->wavelet.c[i] = correction[i]->getEditedState(); } - pedited->wavelet.strength = strength->getEditedState (); + pedited->wavelet.strength = strength->getEditedState (); } if (CHmethod->get_active_row_number()==0) pp->wavelet.CHmethod = "without"; @@ -884,7 +876,7 @@ void Wavelet::write (ProcParams* pp, ParamsEdited* pedited) { } void Wavelet::curveChanged (CurveEditor* ce) { - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { if (ce == ccshape) listener->panelChanged (EvWavCLVCurve, M("HISTORY_CUSTOMCURVE")); else if (ce == opacityShapeRG) @@ -988,7 +980,7 @@ void Wavelet::setDefaults (const ProcParams* defParams, const ParamsEdited* pedi void Wavelet::adjusterChanged2 (ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR) { - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { if(a==hueskin) { listener->panelChanged (EvWavHueskin,hueskin->getHistoryString()); } @@ -1026,7 +1018,7 @@ void Wavelet::HSmethodChanged() { } } - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvWavHSmet, HSmethod->get_active_text ()); } } @@ -1056,7 +1048,7 @@ void Wavelet::CHmethodChanged() { } } - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvWavCHmet, CHmethod->get_active_text ()); } } @@ -1064,7 +1056,7 @@ void Wavelet::CHmethodChanged() { void Wavelet::CLmethodChanged() { if (!batchMode) { } - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvWavCLmet, CLmethod->get_active_text ()); } if (CLmethod->get_active_row_number()==0) { @@ -1092,7 +1084,7 @@ void Wavelet::CLmethodChanged() { void Wavelet::TilesmethodChanged() { if (!batchMode) { } - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvWavTilesmet, Tilesmethod->get_active_text ()); } } @@ -1100,7 +1092,7 @@ void Wavelet::TilesmethodChanged() { void Wavelet::DirmethodChanged() { if (!batchMode) { } - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvWavDirmeto, Dirmethod->get_active_text ()); } } @@ -1108,7 +1100,7 @@ void Wavelet::DirmethodChanged() { void Wavelet::LmethodChanged() { if (!batchMode) { } - if (listener && (multiImage||enabled->get_active()) ) { + if (listener && (multiImage||getEnabled()) ) { listener->panelChanged (EvWavLmet, Lmethod->get_active_text ()); } } @@ -1155,7 +1147,7 @@ void Wavelet::setBatchMode (bool batchMode) { } void Wavelet::adjusterChanged (Adjuster* a, double newval) { - if (listener && enabled->get_active()) { + if (listener && getEnabled()) { if (a == edgthresh) { listener->panelChanged (EvWavtiles, Glib::ustring::compose("%1", @@ -1298,29 +1290,18 @@ void Wavelet::adjusterChanged (Adjuster* a, double newval) { } -void Wavelet::enabledToggled () { - - if (batchMode) { - if (enabled->get_inconsistent()) { - enabled->set_inconsistent (false); - enaConn.block (true); - enabled->set_active (false); - enaConn.block (false); - } - else if (lastEnabled) - enabled->set_inconsistent (true); - - lastEnabled = enabled->get_active (); +void Wavelet::enabledChanged () { + if (!batchMode) { + int y=thres->getValue(); + int z; + for(z=y;z<9;z++) correction[z]->hide(); + for(z=0;zshow(); + if(z==9) sup->show(); else sup->hide(); } - else { - int y=thres->getValue(); - int z; - for(z=y;z<9;z++) correction[z]->hide(); - for(z=0;zshow(); - if(z==9) sup->show(); else sup->hide(); - } if (listener) { - if (enabled->get_active ()) + if (get_inconsistent()) + listener->panelChanged (EvWavEnabled, M("GENERAL_UNCHANGED")); + else if (getEnabled()) listener->panelChanged (EvWavEnabled, M("GENERAL_ENABLED")); else listener->panelChanged (EvWavEnabled, M("GENERAL_DISABLED")); @@ -1403,7 +1384,7 @@ void Wavelet::medianToggled () { } if (listener) { - if (enabled->get_active ()) + if (getEnabled ()) listener->panelChanged (EvWavmedian, M("GENERAL_ENABLED")); else listener->panelChanged (EvWavmedian, M("GENERAL_DISABLED")); @@ -1425,7 +1406,7 @@ void Wavelet::avoidToggled () { lastavoid = avoid->get_active (); } if (listener) { - if (enabled->get_active ()) + if (getEnabled ()) listener->panelChanged (EvWavavoid, M("GENERAL_ENABLED")); else listener->panelChanged (EvWavavoid, M("GENERAL_DISABLED")); diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 78dd4a617..19013e138 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -46,7 +46,6 @@ protected: FlatCurveEditor* opacityShapeBY; FlatCurveEditor* ccshape; - Gtk::CheckButton * enabled; Gtk::CheckButton * display; Gtk::CheckButton * displaylevel; Gtk::CheckButton * displaychro; @@ -132,12 +131,12 @@ protected: Gtk::Label* tilesizeLabel; Gtk::Label* previewLevelsLabel; - sigc::connection enaConn, expConn, medianConn, avoidConn; + sigc::connection expConn, medianConn, avoidConn; sigc::connection neutralPressedConn; sigc::connection contrastPlusPressedConn; sigc::connection contrastMinusPressedConn; - - bool lastEnabled, lastdisplay, lastdisplaygam,lastdisplayres,lastdisplaychro, lastdisplaylevel,lastmedian, lastavoid; + + bool lastdisplay, lastdisplaygam,lastdisplayres,lastdisplaychro, lastdisplaylevel,lastmedian, lastavoid; int nextnlevel; public: @@ -166,7 +165,7 @@ public: void setAdjusterBehavior (bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd,bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd); void adjusterChanged (Adjuster* a, double newval); - void enabledToggled (); + void enabledChanged (); void medianToggled (); void expcontrastTog (); void expresidTog (); diff --git a/rtgui/whitebalance.cc b/rtgui/whitebalance.cc index ae11ee73e..e15caa38f 100755 --- a/rtgui/whitebalance.cc +++ b/rtgui/whitebalance.cc @@ -115,7 +115,7 @@ static double wbTemp2Slider(double temp) { return sval; } -WhiteBalance::WhiteBalance () : FoldableToolPanel(this), wbp(NULL), wblistener(NULL) { +WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WBALANCE_LABEL")), wbp(NULL), wblistener(NULL) { Gtk::HBox* hbox = Gtk::manage (new Gtk::HBox ()); hbox->show (); diff --git a/rtgui/xtransprocess.cc b/rtgui/xtransprocess.cc index 706305e9c..2cd3a8057 100644 --- a/rtgui/xtransprocess.cc +++ b/rtgui/xtransprocess.cc @@ -22,7 +22,7 @@ using namespace rtengine; using namespace rtengine::procparams; -XTransProcess::XTransProcess () : FoldableToolPanel(this) +XTransProcess::XTransProcess () : FoldableToolPanel(this, "xtransprocess", M("TP_RAW_LABEL"), true) { Gtk::HBox* hb1 = Gtk::manage (new Gtk::HBox ()); hb1->pack_start (*Gtk::manage (new Gtk::Label ( M("TP_RAW_DMETHOD") +": ")),Gtk::PACK_SHRINK, 4); diff --git a/rtgui/xtransrawexposure.cc b/rtgui/xtransrawexposure.cc index d9a610f27..458647ac1 100644 --- a/rtgui/xtransrawexposure.cc +++ b/rtgui/xtransrawexposure.cc @@ -24,7 +24,7 @@ using namespace rtengine; using namespace rtengine::procparams; -XTransRAWExposure::XTransRAWExposure () : FoldableToolPanel(this) +XTransRAWExposure::XTransRAWExposure () : FoldableToolPanel(this, "xtransrawexposure", M("TP_EXPOS_BLACKPOINT_LABEL")) { PexBlackRed = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_RED"),-2048,2048,0.1,0));//black level PexBlackRed->setAdjusterListener (this); diff --git a/tools/source_icons/scalable/expanderClosed.file b/tools/source_icons/scalable/expanderClosed.file new file mode 100644 index 000000000..42abd041b --- /dev/null +++ b/tools/source_icons/scalable/expanderClosed.file @@ -0,0 +1 @@ +expanderClosed.png,w12,actions diff --git a/tools/source_icons/scalable/expanderClosed.svg b/tools/source_icons/scalable/expanderClosed.svg new file mode 100644 index 000000000..a7dca0cfc --- /dev/null +++ b/tools/source_icons/scalable/expanderClosed.svg @@ -0,0 +1,702 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/tools/source_icons/scalable/expanderDisabled.file b/tools/source_icons/scalable/expanderDisabled.file new file mode 100644 index 000000000..28eb79392 --- /dev/null +++ b/tools/source_icons/scalable/expanderDisabled.file @@ -0,0 +1 @@ +expanderDisabled.png,w12,actions diff --git a/tools/source_icons/scalable/expanderDisabled.svg b/tools/source_icons/scalable/expanderDisabled.svg new file mode 100644 index 000000000..5e82ba4d8 --- /dev/null +++ b/tools/source_icons/scalable/expanderDisabled.svg @@ -0,0 +1,634 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/tools/source_icons/scalable/expanderEnabled.file b/tools/source_icons/scalable/expanderEnabled.file new file mode 100644 index 000000000..55afa72ed --- /dev/null +++ b/tools/source_icons/scalable/expanderEnabled.file @@ -0,0 +1 @@ +expanderEnabled.png,w12,actions diff --git a/tools/source_icons/scalable/expanderEnabled.svg b/tools/source_icons/scalable/expanderEnabled.svg new file mode 100644 index 000000000..318e61341 --- /dev/null +++ b/tools/source_icons/scalable/expanderEnabled.svg @@ -0,0 +1,666 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/tools/source_icons/scalable/expanderInconsistent.file b/tools/source_icons/scalable/expanderInconsistent.file new file mode 100644 index 000000000..594ef14d9 --- /dev/null +++ b/tools/source_icons/scalable/expanderInconsistent.file @@ -0,0 +1 @@ +expanderInconsistent.png,w12,actions diff --git a/tools/source_icons/scalable/expanderInconsistent.svg b/tools/source_icons/scalable/expanderInconsistent.svg new file mode 100644 index 000000000..176b900df --- /dev/null +++ b/tools/source_icons/scalable/expanderInconsistent.svg @@ -0,0 +1,1225 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/tools/source_icons/scalable/expanderOpened.file b/tools/source_icons/scalable/expanderOpened.file new file mode 100644 index 000000000..7b7d1aad6 --- /dev/null +++ b/tools/source_icons/scalable/expanderOpened.file @@ -0,0 +1 @@ +expanderOpened.png,w12,actions diff --git a/tools/source_icons/scalable/expanderOpened.svg b/tools/source_icons/scalable/expanderOpened.svg new file mode 100644 index 000000000..06d8e8bf9 --- /dev/null +++ b/tools/source_icons/scalable/expanderOpened.svg @@ -0,0 +1,734 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + +