Skip to content

Commit 354db3f

Browse files
committed
Remove GTK+2 support.
Although it had HIRO_GTK==3 sections, hiro/gtk/monitor.cpp was actually using deprecated GTK+2 APIs on GTK3, and the GTK3 code was broken and wouldn't compile.
1 parent 22a2e0a commit 354db3f

16 files changed

+16
-172
lines changed

hiro/GNUmakefile

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,6 @@ ifeq ($(platform),windows)
88
hiro.options = -lkernel32 -luser32 -lgdi32 -ladvapi32 -lole32 -lcomctl32 -lcomdlg32 -luxtheme -lmsimg32 -lshlwapi -ldwmapi
99
endif
1010

11-
ifeq ($(hiro),gtk2)
12-
hiro.flags = $(flags.cpp) -DHIRO_GTK=2 $(shell pkg-config --cflags gtk+-2.0) -Wno-deprecated-declarations
13-
hiro.options = $(shell pkg-config --libs gtk+-2.0)
14-
endif
15-
1611
ifeq ($(hiro),gtk3)
1712
hiro.flags = $(flags.cpp) -DHIRO_GTK=3 $(shell pkg-config --cflags gtk+-3.0) -Wno-deprecated-declarations
1813
hiro.options = $(shell pkg-config --libs gtk+-3.0)
@@ -35,17 +30,6 @@ ifneq ($(filter $(platform),linux bsd),)
3530
hiro := gtk3
3631
endif
3732

38-
ifeq ($(hiro),gtk2)
39-
hiro.flags = $(flags.cpp) -DHIRO_GTK=2 $(shell pkg-config --cflags gtk+-2.0) -Wno-deprecated-declarations
40-
hiro.options = -L/usr/local/lib -lX11 $(shell pkg-config --libs gtk+-2.0)
41-
endif
42-
43-
ifeq ($(hiro),gtk2-se)
44-
flags += -DHiro_SourceEdit
45-
hiro.flags = $(flags.cpp) -DHIRO_GTK=2 $(shell pkg-config --cflags gtk+-2.0 gtksourceview-2.0) -Wno-deprecated-declarations
46-
hiro.options = -L/usr/local/lib -lX11 $(shell pkg-config --libs gtk+-2.0 gtksourceview-2.0)
47-
endif
48-
4933
ifeq ($(hiro),gtk3)
5034
hiro.flags = $(flags.cpp) -DHIRO_GTK=3 $(shell pkg-config --cflags gtk+-3.0) -Wno-deprecated-declarations
5135
hiro.options = -L/usr/local/lib -lX11 $(shell pkg-config --libs gtk+-3.0)

hiro/gtk/application.cpp

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -141,32 +141,6 @@ auto pApplication::initialize() -> void {
141141
g_object_set(gtkSettings, "gtk-im-module", "gtk-im-context-simple", nullptr);
142142
#endif
143143

144-
#if HIRO_GTK==2
145-
gtk_rc_parse_string(R"(
146-
style "HiroWindow"
147-
{
148-
GtkWindow::resize-grip-width = 0
149-
GtkWindow::resize-grip-height = 0
150-
}
151-
class "GtkWindow" style "HiroWindow"
152-
153-
style "HiroTreeView"
154-
{
155-
GtkTreeView::vertical-separator = 0
156-
}
157-
class "GtkTreeView" style "HiroTreeView"
158-
159-
style "HiroTabFrameCloseButton"
160-
{
161-
GtkWidget::focus-line-width = 0
162-
GtkWidget::focus-padding = 0
163-
GtkButton::default-border = {0, 0, 0, 0}
164-
GtkButton::default-outer-border = {0, 0, 0, 0}
165-
GtkButton::inner-border = {0, 1, 0, 0}
166-
}
167-
widget_class "*.<GtkNotebook>.<GtkHBox>.<GtkButton>" style "HiroTabFrameCloseButton"
168-
)");
169-
#elif HIRO_GTK==3
170144
GtkCssProvider *provider;
171145
GdkScreen *screen;
172146

@@ -179,7 +153,6 @@ auto pApplication::initialize() -> void {
179153

180154
screen = gdk_screen_get_default();
181155
gtk_style_context_add_provider_for_screen(screen, GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
182-
#endif
183156

184157
pKeyboard::initialize();
185158
}

hiro/gtk/header.hpp

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,7 @@
1515
#include <gdk/gdkkeysyms.h>
1616
#include <gtk/gtk.h>
1717
#if defined(Hiro_SourceEdit)
18-
#if HIRO_GTK==2
19-
#include <gtksourceview/gtksourceview.h>
20-
#include <gtksourceview/gtksourcelanguagemanager.h>
21-
#include <gtksourceview/gtksourcestyleschememanager.h>
22-
#elif HIRO_GTK==3
23-
#include <gtksourceview/gtksource.h>
24-
#endif
18+
#include <gtksourceview/gtksource.h>
2519
#endif
2620
#include <nall/windows/guard.hpp>
2721
#include <nall/windows/registry.hpp>
@@ -37,13 +31,7 @@
3731
#include <gdk/gdkkeysyms.h>
3832
#include <gtk/gtk.h>
3933
#if defined(Hiro_SourceEdit)
40-
#if HIRO_GTK==2
41-
#include <gtksourceview/gtksourceview.h>
42-
#include <gtksourceview/gtksourcelanguagemanager.h>
43-
#include <gtksourceview/gtksourcestyleschememanager.h>
44-
#elif HIRO_GTK==3
45-
#include <gtksourceview/gtksource.h>
46-
#endif
34+
#include <gtksourceview/gtksource.h>
4735
#endif
4836
#include <nall/xorg/guard.hpp>
4937
#endif

hiro/gtk/monitor.cpp

Lines changed: 14 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,44 @@
11
#if defined(Hiro_Monitor)
22

3-
//GTK 3.22 adds new monitor functions
4-
//using GTK 2.x functions as FreeBSD 10.1 uses GTK 3.8
5-
63
namespace hiro {
74

85
auto pMonitor::count() -> uint {
9-
#if HIRO_GTK==2 || 1
10-
return gdk_screen_get_n_monitors(gdk_screen_get_default());
11-
#elif HIRO_GTK==3
126
return gdk_display_get_n_monitors(gdk_display_get_default());
13-
#endif
147
}
158

169
auto pMonitor::dpi(uint monitor) -> Position {
17-
#if HIRO_GTK==2 || 1
18-
//GTK2 does not support either per-monitor or per-axis DPI reporting
19-
float dpi = round(gdk_screen_get_resolution(gdk_screen_get_default()));
20-
return {dpi, dpi};
21-
#elif HIRO_GTK==3
2210
auto gdkMonitor = gdk_display_get_monitor(gdk_display_get_default(), monitor);
11+
auto monitorGeometry = geometry(monitor);
12+
auto scaleFactor = gdk_monitor_get_scale_factor(gdkMonitor);
2313
return {
24-
round(gdk_monitor_get_width(gdkMonitor) / (gdk_monitor_get_width_mm(gdkMonitor) / 25.4)),
25-
round(gdk_monitor_get_height(gdkMonitor) / (gdk_monitor_get_height_mm(gdkMonitor) / 25.4))
14+
round(monitorGeometry.width() * scaleFactor / (gdk_monitor_get_width_mm(gdkMonitor) / 25.4)),
15+
round(monitorGeometry.height() * scaleFactor / (gdk_monitor_get_height_mm(gdkMonitor) / 25.4))
2616
};
27-
#endif
2817
}
2918

3019
auto pMonitor::geometry(uint monitor) -> Geometry {
3120
GdkRectangle rectangle = {};
32-
#if HIRO_GTK==2 || 1
33-
gdk_screen_get_monitor_geometry(gdk_screen_get_default(), monitor, &rectangle);
34-
#elif HIRO_GTK==3
3521
auto gdkMonitor = gdk_display_get_monitor(gdk_display_get_default(), monitor);
36-
gdk_monitor_get_geometry(monitor, &rectangle);
37-
#endif
22+
gdk_monitor_get_geometry(gdkMonitor, &rectangle);
3823
return {rectangle.x, rectangle.y, rectangle.width, rectangle.height};
3924
}
4025

4126
auto pMonitor::primary() -> uint {
42-
#if HIRO_GTK==2 || 1
43-
return gdk_screen_get_primary_monitor(gdk_screen_get_default());
44-
#elif HIRO_GTK==3
45-
return gdk_display_get_primary_monitor(gdk_display_get_default());
46-
#endif
27+
auto display = gdk_display_get_default();
28+
auto primary = gdk_display_get_primary_monitor(display);
29+
30+
// gdk_display_get_primary_monitor() returns a &GdkMonitor, but most APIs
31+
// want an index number.
32+
for (auto i = 1; i < gdk_display_get_n_monitors(display); i++ )
33+
if (primary == gdk_display_get_monitor(display, i)) return i;
34+
return 0;
4735
}
4836

4937
auto pMonitor::workspace(uint monitor) -> Geometry {
50-
#if HIRO_GTK==2 || 1
51-
if(Monitor::count() == 1) {
52-
return Desktop::workspace();
53-
} else {
54-
//it is currently unknown how to get per-monitor workspace areas, use geometry instead
55-
return Monitor::geometry(monitor);
56-
}
57-
#elif HIRO_GTK==3
5838
auto gdkMonitor = gdk_display_get_monitor(gdk_display_get_default(), monitor);
5939
GdkRectangle rectangle = {};
60-
gdk_monitor_get_workarea(monitor, &rectangle);
40+
gdk_monitor_get_workarea(gdkMonitor, &rectangle);
6141
return {rectangle.x, rectangle.y, rectangle.width, rectangle.height};
62-
#endif
6342
}
6443

6544
}

hiro/gtk/settings.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@ namespace hiro {
22

33
Settings::Settings() {
44
string path = {Path::userSettings(), "hiro/"};
5-
#if HIRO_GTK==2
6-
auto document = BML::unserialize(file::read({path, "gtk2.bml"}));
7-
#elif HIRO_GTK==3
85
auto document = BML::unserialize(file::read({path, "gtk3.bml"}));
9-
#endif
106

117
#define get(name, type, value) \
128
if(auto node = document[name]) value = node.type()
@@ -45,11 +41,7 @@ Settings::~Settings() {
4541

4642
#undef set
4743

48-
#if HIRO_GTK==2
49-
file::write({path, "gtk2.bml"}, BML::serialize(document));
50-
#elif HIRO_GTK==3
5144
file::write({path, "gtk3.bml"}, BML::serialize(document));
52-
#endif
5345
}
5446

5547
}

hiro/gtk/widget/canvas.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,7 @@ auto pCanvas::construct() -> void {
4646
g_signal_connect(G_OBJECT(gtkWidget), "button-press-event", G_CALLBACK(Canvas_mousePress), (gpointer)this);
4747
g_signal_connect(G_OBJECT(gtkWidget), "button-release-event", G_CALLBACK(Widget_mouseRelease), (gpointer)this);
4848
g_signal_connect(G_OBJECT(gtkWidget), "drag-data-received", G_CALLBACK(Widget_drop), (gpointer)this);
49-
#if HIRO_GTK==2
50-
g_signal_connect(G_OBJECT(gtkWidget), "expose-event", G_CALLBACK(Canvas_expose), (gpointer)this);
51-
#elif HIRO_GTK==3
5249
g_signal_connect(G_OBJECT(gtkWidget), "draw", G_CALLBACK(Canvas_draw), (gpointer)this);
53-
#endif
5450
g_signal_connect(G_OBJECT(gtkWidget), "key-press-event", G_CALLBACK(Canvas_keyPress), (gpointer)this);
5551
g_signal_connect(G_OBJECT(gtkWidget), "enter-notify-event", G_CALLBACK(Widget_mouseEnter), (gpointer)this);
5652
g_signal_connect(G_OBJECT(gtkWidget), "leave-notify-event", G_CALLBACK(Widget_mouseLeave), (gpointer)this);

hiro/gtk/widget/hex-edit.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,7 @@ static auto HexEdit_scroll(GtkRange* range, GtkScrollType scroll, double value,
2626
}
2727

2828
auto pHexEdit::construct() -> void {
29-
#if HIRO_GTK==2
30-
gtkWidget = gtk_hbox_new(false, 0);
31-
#elif HIRO_GTK==3
3229
gtkWidget = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
33-
#endif
3430

3531
container = gtk_scrolled_window_new(0, 0);
3632
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(container), GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER);
@@ -41,11 +37,7 @@ auto pHexEdit::construct() -> void {
4137
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(subWidget), GTK_WRAP_NONE);
4238
gtk_container_add(GTK_CONTAINER(container), subWidget);
4339

44-
#if HIRO_GTK==2
45-
scrollBar = gtk_vscrollbar_new(nullptr);
46-
#elif HIRO_GTK==3
4740
scrollBar = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, nullptr);
48-
#endif
4941
gtk_range_set_range(GTK_RANGE(scrollBar), 0, 255);
5042
gtk_range_set_increments(GTK_RANGE(scrollBar), 1, 16);
5143
gtk_widget_set_sensitive(scrollBar, false);

hiro/gtk/widget/horizontal-scroll-bar.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,7 @@ static auto HorizontalScrollBar_change(GtkRange* gtkRange, pHorizontalScrollBar*
1010
}
1111

1212
auto pHorizontalScrollBar::construct() -> void {
13-
#if HIRO_GTK==2
14-
gtkWidget = gtk_hscrollbar_new(nullptr);
15-
#elif HIRO_GTK==3
1613
gtkWidget = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, nullptr);
17-
#endif
1814

1915
setLength(state().length);
2016
setPosition(state().position);

hiro/gtk/widget/horizontal-slider.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,7 @@ static auto HorizontalSlider_change(GtkRange* gtkRange, pHorizontalSlider* p) ->
1010
}
1111

1212
auto pHorizontalSlider::construct() -> void {
13-
#if HIRO_GTK==2
14-
gtkWidget = gtk_hscale_new_with_range(0, 100, 1);
15-
#elif HIRO_GTK==3
1613
gtkWidget = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, 0, 100, 1);
17-
#endif
1814
gtk_scale_set_draw_value(GTK_SCALE(gtkWidget), false);
1915

2016
setLength(state().length);

hiro/gtk/widget/label.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,13 @@ static auto Label_draw(GtkWidget* widget, cairo_t* context, pLabel* p) -> int {
2525
cairo_set_operator(context, CAIRO_OPERATOR_SOURCE);
2626
cairo_paint(context);
2727
} else {
28-
#if HIRO_GTK==3
2928
auto style = gtk_widget_get_style_context(widget);
3029
if(auto tabFrame = p->self().parentTabFrame(true)) {
3130
if(auto self = tabFrame->self()) style = gtk_widget_get_style_context(self->gtkWidget);
3231
}
3332
GtkAllocation allocation;
3433
gtk_widget_get_allocation(widget, &allocation);
3534
gtk_render_background(style, context, 0, 0, allocation.width, allocation.height);
36-
#endif
3735
}
3836

3937
return false;
@@ -87,11 +85,7 @@ auto pLabel::construct() -> void {
8785

8886
g_signal_connect(G_OBJECT(gtkWidget), "button-press-event", G_CALLBACK(Label_mousePress), (gpointer)this);
8987
g_signal_connect(G_OBJECT(gtkWidget), "button-release-event", G_CALLBACK(Label_mouseRelease), (gpointer)this);
90-
#if HIRO_GTK==2
91-
g_signal_connect(G_OBJECT(subWidget), "expose-event", G_CALLBACK(Label_expose), (gpointer)this);
92-
#elif HIRO_GTK==3
9388
g_signal_connect(G_OBJECT(subWidget), "draw", G_CALLBACK(Label_draw), (gpointer)this);
94-
#endif
9589
g_signal_connect(G_OBJECT(gtkWidget), "enter-notify-event", G_CALLBACK(Label_mouseEnter), (gpointer)this);
9690
g_signal_connect(G_OBJECT(gtkWidget), "leave-notify-event", G_CALLBACK(Label_mouseLeave), (gpointer)this);
9791

0 commit comments

Comments
 (0)