Skip to content

Commit ec51fb3

Browse files
committed
update from nip4
copy nip4 improvements back into vipsdisp
1 parent 33faf59 commit ec51fb3

32 files changed

+2384
-985
lines changed

org.libvips.vipsdisp.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,7 @@
439439
"sources" : [
440440
{
441441
"type" : "archive",
442-
"url" : "https://github.com/libvips/libvips/releases/download/v8.16.0/vips-8.16.0.tar.xz",
442+
"url" : "https://github.com/libvips/libvips/releases/download/v8.17.0-test4/vips-8.17.0-test4.tar.xz",
443443
"sha256" : "6eca46c6ba5fac86224fd69007741012b0ea1f9aa1fcb9256b0cbc2faf768563"
444444
}
445445
]

src/displaybar.c

Lines changed: 48 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,32 @@
1+
/* the display control widgets
2+
*/
3+
4+
/*
5+
6+
Copyright (C) 1991-2003 The National Gallery
7+
8+
This program is free software; you can redistribute it and/or modify
9+
it under the terms of the GNU General Public License as published by
10+
the Free Software Foundation; either version 2 of the License, or
11+
(at your option) any later version.
12+
13+
This program is distributed in the hope that it will be useful,
14+
but WITHOUT ANY WARRANTY; without even the implied warranty of
15+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16+
GNU General Public License for more details.
17+
18+
You should have received a copy of the GNU General Public License along
19+
with this program; if not, write to the Free Software Foundation, Inc.,
20+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21+
22+
*/
23+
24+
/*
25+
26+
These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk
27+
28+
*/
29+
130
#include "vipsdisp.h"
231

332
/*
@@ -12,7 +41,7 @@ struct _Displaybar {
1241
*/
1342
Imagewindow *win;
1443

15-
/* A ref to the tilesource we are currently controlling.
44+
/* A ref to the tilesource we are currently controlling.
1645
*/
1746
Tilesource *tilesource;
1847

@@ -105,13 +134,13 @@ displaybar_imagewindow_changed(Imagewindow *win, Displaybar *displaybar)
105134
if (new_tilesource) {
106135
/* Set new source.
107136
*/
108-
displaybar->changed_sid = g_signal_connect(new_tilesource,
137+
displaybar->changed_sid = g_signal_connect(new_tilesource,
109138
"changed",
110139
G_CALLBACK(displaybar_tilesource_changed), displaybar);
111-
displaybar->tiles_changed_sid = g_signal_connect(new_tilesource,
140+
displaybar->tiles_changed_sid = g_signal_connect(new_tilesource,
112141
"tiles-changed",
113142
G_CALLBACK(displaybar_tilesource_changed), displaybar);
114-
displaybar->page_changed_sid = g_signal_connect(new_tilesource,
143+
displaybar->page_changed_sid = g_signal_connect(new_tilesource,
115144
"page-changed",
116145
G_CALLBACK(displaybar_page_changed), displaybar);
117146

@@ -147,13 +176,11 @@ displaybar_set_property(GObject *object,
147176

148177
switch (prop_id) {
149178
case PROP_IMAGEWINDOW:
150-
displaybar_set_imagewindow(displaybar,
151-
g_value_get_object(value));
179+
displaybar_set_imagewindow(displaybar, g_value_get_object(value));
152180
break;
153181

154182
case PROP_REVEALED:
155-
gtk_action_bar_set_revealed(
156-
GTK_ACTION_BAR(displaybar->action_bar),
183+
gtk_action_bar_set_revealed(GTK_ACTION_BAR(displaybar->action_bar),
157184
g_value_get_boolean(value));
158185
break;
159186

@@ -251,8 +278,6 @@ displaybar_init(Displaybar *displaybar)
251278

252279
gtk_widget_init_template(GTK_WIDGET(displaybar));
253280

254-
set_tooltip(GTK_WIDGET(displaybar->page), _("Page select"));
255-
256281
tslider = TSLIDER(displaybar->scale);
257282
tslider_set_conversions(tslider,
258283
tslider_log_value_to_slider, tslider_log_slider_to_value);
@@ -262,55 +287,40 @@ displaybar_init(Displaybar *displaybar)
262287
tslider->svalue = 128;
263288
tslider->digits = 3;
264289
tslider_changed(tslider);
265-
set_tooltip(GTK_WIDGET(tslider), _("Brightness scale factor"));
266290

267291
tslider = TSLIDER(displaybar->offset);
268292
tslider->from = -128;
269293
tslider->to = 128;
270294
tslider->value = 0;
271295
tslider->svalue = 0;
272-
tslider->digits = 1;
296+
tslider->digits = 4;
273297
tslider_changed(tslider);
274-
set_tooltip(GTK_WIDGET(tslider), _("Brightness offset"));
275-
276-
g_signal_connect(displaybar->page, "value-changed",
277-
G_CALLBACK(displaybar_page_value_changed),
278-
displaybar);
279-
g_signal_connect(displaybar->scale, "changed",
280-
G_CALLBACK(displaybar_scale_value_changed),
281-
displaybar);
282-
g_signal_connect(displaybar->offset, "changed",
283-
G_CALLBACK(displaybar_offset_value_changed),
284-
displaybar);
285298
}
286299

287-
#define BIND(field) \
288-
gtk_widget_class_bind_template_child(GTK_WIDGET_CLASS(class), \
289-
Displaybar, field);
290-
291300
static void
292301
displaybar_class_init(DisplaybarClass *class)
293302
{
294303
GObjectClass *gobject_class = G_OBJECT_CLASS(class);
295-
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(class);
296304

297305
#ifdef DEBUG
298306
printf("displaybar_class_init:\n");
299307
#endif /*DEBUG*/
300308

301-
G_OBJECT_CLASS(class)->dispose = displaybar_dispose;
309+
BIND_RESOURCE("displaybar.ui");
310+
BIND_LAYOUT();
302311

303-
gtk_widget_class_set_layout_manager_type(widget_class,
304-
GTK_TYPE_BIN_LAYOUT);
305-
gtk_widget_class_set_template_from_resource(GTK_WIDGET_CLASS(class),
306-
APP_PATH "/displaybar.ui");
312+
BIND_VARIABLE(Displaybar, action_bar);
313+
BIND_VARIABLE(Displaybar, gears);
314+
BIND_VARIABLE(Displaybar, page);
315+
BIND_VARIABLE(Displaybar, scale);
316+
BIND_VARIABLE(Displaybar, offset);
317+
BIND_VARIABLE(Displaybar, offset);
307318

308-
BIND(action_bar);
309-
BIND(gears);
310-
BIND(page);
311-
BIND(scale);
312-
BIND(offset);
319+
BIND_CALLBACK(displaybar_page_value_changed);
320+
BIND_CALLBACK(displaybar_scale_value_changed);
321+
BIND_CALLBACK(displaybar_offset_value_changed);
313322

323+
gobject_class->dispose = displaybar_dispose;
314324
gobject_class->set_property = displaybar_set_property;
315325
gobject_class->get_property = displaybar_get_property;
316326

src/displaybar.h

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,41 @@
1+
/* the display control widgets
2+
*/
3+
4+
/*
5+
6+
Copyright (C) 1991-2003 The National Gallery
7+
8+
This program is free software; you can redistribute it and/or modify
9+
it under the terms of the GNU General Public License as published by
10+
the Free Software Foundation; either version 2 of the License, or
11+
(at your option) any later version.
12+
13+
This program is distributed in the hope that it will be useful,
14+
but WITHOUT ANY WARRANTY; without even the implied warranty of
15+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16+
GNU General Public License for more details.
17+
18+
You should have received a copy of the GNU General Public License along
19+
with this program; if not, write to the Free Software Foundation, Inc.,
20+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21+
22+
*/
23+
24+
/*
25+
26+
These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk
27+
28+
*/
29+
130
#ifndef __DISPLAYBAR_H
231
#define __DISPLAYBAR_H
332

433
#define DISPLAYBAR_TYPE (displaybar_get_type())
534

6-
G_DECLARE_FINAL_TYPE(Displaybar, displaybar,
7-
VIPSDISP, DISPLAYBAR, GtkWidget)
35+
G_DECLARE_FINAL_TYPE(Displaybar, displaybar, NIP4, DISPLAYBAR, GtkWidget)
836

937
#define DISPLAYBAR(obj) \
10-
(G_TYPE_CHECK_INSTANCE_CAST((obj), \
11-
DISPLAYBAR_TYPE, Displaybar))
38+
(G_TYPE_CHECK_INSTANCE_CAST((obj), DISPLAYBAR_TYPE, Displaybar))
1239

1340
Displaybar *displaybar_new(Imagewindow *win);
1441

src/gtk/displaybar.ui

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<interface>
3+
34
<menu id="displaybar-menu">
45
<section>
56
<item>
@@ -116,18 +117,27 @@
116117
<property name="climb-rate">1</property>
117118
<property name="digits">0</property>
118119
<property name="numeric">true</property>
120+
<property name="tooltip-text">Page select</property>
121+
<signal name="value-changed"
122+
handler="displaybar_page_value_changed"/>
119123
</object>
120124
</child>
121125

122126
<child>
123127
<object class="Tslider" id="scale">
124128
<property name="hexpand">True</property>
129+
<property name="tooltip-text">Brightness scale factor</property>
130+
<signal name="changed"
131+
handler="displaybar_scale_value_changed"/>
125132
</object>
126133
</child>
127134

128135
<child>
129136
<object class="Tslider" id="offset">
130137
<property name="hexpand">True</property>
138+
<property name="tooltip-text">Brightness offset</property>
139+
<signal name="changed"
140+
handler="displaybar_offset_value_changed"/>
131141
</object>
132142
</child>
133143

src/gtk/ientry.ui

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<interface>
3+
<template class="iEntry" parent="GtkWidget">
4+
5+
<child>
6+
<object class="GtkEntry" id="entry">
7+
<signal name="activate" handler="ientry_entry_activate"/>
8+
9+
<child>
10+
<object class="GtkEventControllerKey">
11+
<signal name="key-pressed" handler="ientry_entry_key_pressed"/>
12+
</object>
13+
</child>
14+
</object>
15+
</child>
16+
17+
</template>
18+
</interface>

src/gtk/imagewindow.ui

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,6 @@
4545
<attribute name='label' translatable='yes'>New window</attribute>
4646
<attribute name='action'>app.new</attribute>
4747
</item>
48-
<item>
49-
<attribute name='label' translatable='yes'>Duplicate window</attribute>
50-
<attribute name='action'>win.duplicate</attribute>
51-
</item>
5248
<item>
5349
<attribute name='label' translatable='yes'>Next page</attribute>
5450
<attribute name='action'>win.next</attribute>

src/gtk/properties.ui

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,27 @@
1717
<property name="orientation">vertical</property>
1818
<property name="hexpand">false</property>
1919
<property name="vexpand">true</property>
20-
20+
2121
<child>
2222
<object class="GtkSearchEntry" id="search_entry">
2323
<property name="margin-top">10px</property>
2424
<property name="margin-bottom">10px</property>
2525
<property name="hexpand">true</property>
2626
<property name="placeholder-text">Filter properties</property>
27+
<signal name="search-changed"
28+
handler="properties_search_changed"/>
2729
</object>
2830
</child>
29-
31+
3032
<child>
3133
<object class="GtkScrolledWindow" id="scrolled_window">
3234
<property name="hexpand">true</property>
3335
<property name="vexpand">true</property>
3436
<property name="hscrollbar-policy">never</property>
35-
37+
3638
</object>
3739
</child>
38-
40+
3941
</object>
4042
</child>
4143

src/gtk/saveoptions.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
#saveoptions-label {
23
color: gray;
34
margin-top: 5px;

0 commit comments

Comments
 (0)