Skip to content

Commit 608cc3b

Browse files
committed
Copy and adapt existing Gtk wrapper to create a Gtk3 wrapper (for supporting older Linux)
1 parent 78ddea3 commit 608cc3b

File tree

166 files changed

+11336
-214
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

166 files changed

+11336
-214
lines changed

Package.swift

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,25 @@ let package = Package(
216216
"XMLCoder", .product(name: "SwiftSyntaxBuilder", package: "swift-syntax"),
217217
]
218218
),
219+
.systemLibrary(
220+
name: "CGtk3",
221+
pkgConfig: "gtk+-3.0",
222+
providers: [
223+
.brew(["gtk+3"]),
224+
.apt(["libgtk-3-dev clang"]),
225+
]
226+
),
227+
.target(
228+
name: "Gtk3",
229+
dependencies: ["CGtk3"],
230+
exclude: ["LICENSE.md"],
231+
swiftSettings: gtkSwiftSettings
232+
),
233+
.executableTarget(
234+
name: "Gtk3Example",
235+
dependencies: ["Gtk3"],
236+
resources: [.copy("GTK.png")]
237+
),
219238
.macro(
220239
name: "HotReloadingMacrosPlugin",
221240
dependencies: [

Sources/CGtk3/header.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#include <float.h>
2+
#include <gtk/gtk.h>
3+
#include <gdk/gdk.h>
4+
#include <pango/pango.h>
5+
#include <pango/pangocairo.h>

Sources/CGtk3/module.modulemap

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
module CGtk3 [system] {
2+
header "header.h"
3+
link "gtk-3"
4+
link "pango-1.0"
5+
link "pangocairo-1.0"
6+
7+
export *
8+
}

Sources/Gtk/Generated/Image.swift

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -97,23 +97,6 @@ public class Image: Widget {
9797
widgetPointer = gtk_image_new_from_paintable(paintable)
9898
}
9999

100-
/// Creates a new `GtkImage` displaying @pixbuf.
101-
///
102-
/// The `GtkImage` does not assume a reference to the pixbuf; you still
103-
/// need to unref it if you own references. `GtkImage` will add its own
104-
/// reference rather than adopting yours.
105-
///
106-
/// This is a helper for [ctor@Gtk.Image.new_from_paintable], and you can't
107-
/// get back the exact pixbuf once this is called, only a texture.
108-
///
109-
/// Note that this function just creates an `GtkImage` from the pixbuf.
110-
/// The `GtkImage` created will not react to state changes. Should you
111-
/// want that, you should use [ctor@Gtk.Image.new_from_icon_name].
112-
public init(pixbuf: OpaquePointer) {
113-
super.init()
114-
widgetPointer = gtk_image_new_from_pixbuf(pixbuf)
115-
}
116-
117100
/// Creates a new `GtkImage` displaying the resource file @resource_path.
118101
///
119102
/// If the file isn’t found or can’t be loaded, the resulting `GtkImage` will

Sources/Gtk/Generated/Label.swift

Lines changed: 21 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -348,139 +348,127 @@ public class Label: Widget {
348348
SignalBox1<OpaquePointer>.run(data, value1)
349349
}
350350

351-
addSignal(name: "notify::mnemonic-widget", handler: gCallback(handler12)) {
352-
[weak self] (_: OpaquePointer) in
353-
guard let self = self else { return }
354-
self.notifyMnemonicWidget?(self)
355-
}
356-
357-
let handler13:
358-
@convention(c) (UnsafeMutableRawPointer, OpaquePointer, UnsafeMutableRawPointer) -> Void =
359-
{ _, value1, data in
360-
SignalBox1<OpaquePointer>.run(data, value1)
361-
}
362-
363-
addSignal(name: "notify::natural-wrap-mode", handler: gCallback(handler13)) {
351+
addSignal(name: "notify::natural-wrap-mode", handler: gCallback(handler12)) {
364352
[weak self] (_: OpaquePointer) in
365353
guard let self = self else { return }
366354
self.notifyNaturalWrapMode?(self)
367355
}
368356

369-
let handler14:
357+
let handler13:
370358
@convention(c) (UnsafeMutableRawPointer, OpaquePointer, UnsafeMutableRawPointer) -> Void =
371359
{ _, value1, data in
372360
SignalBox1<OpaquePointer>.run(data, value1)
373361
}
374362

375-
addSignal(name: "notify::selectable", handler: gCallback(handler14)) {
363+
addSignal(name: "notify::selectable", handler: gCallback(handler13)) {
376364
[weak self] (_: OpaquePointer) in
377365
guard let self = self else { return }
378366
self.notifySelectable?(self)
379367
}
380368

381-
let handler15:
369+
let handler14:
382370
@convention(c) (UnsafeMutableRawPointer, OpaquePointer, UnsafeMutableRawPointer) -> Void =
383371
{ _, value1, data in
384372
SignalBox1<OpaquePointer>.run(data, value1)
385373
}
386374

387-
addSignal(name: "notify::single-line-mode", handler: gCallback(handler15)) {
375+
addSignal(name: "notify::single-line-mode", handler: gCallback(handler14)) {
388376
[weak self] (_: OpaquePointer) in
389377
guard let self = self else { return }
390378
self.notifySingleLineMode?(self)
391379
}
392380

393-
let handler16:
381+
let handler15:
394382
@convention(c) (UnsafeMutableRawPointer, OpaquePointer, UnsafeMutableRawPointer) -> Void =
395383
{ _, value1, data in
396384
SignalBox1<OpaquePointer>.run(data, value1)
397385
}
398386

399-
addSignal(name: "notify::tabs", handler: gCallback(handler16)) {
387+
addSignal(name: "notify::tabs", handler: gCallback(handler15)) {
400388
[weak self] (_: OpaquePointer) in
401389
guard let self = self else { return }
402390
self.notifyTabs?(self)
403391
}
404392

405-
let handler17:
393+
let handler16:
406394
@convention(c) (UnsafeMutableRawPointer, OpaquePointer, UnsafeMutableRawPointer) -> Void =
407395
{ _, value1, data in
408396
SignalBox1<OpaquePointer>.run(data, value1)
409397
}
410398

411-
addSignal(name: "notify::use-markup", handler: gCallback(handler17)) {
399+
addSignal(name: "notify::use-markup", handler: gCallback(handler16)) {
412400
[weak self] (_: OpaquePointer) in
413401
guard let self = self else { return }
414402
self.notifyUseMarkup?(self)
415403
}
416404

417-
let handler18:
405+
let handler17:
418406
@convention(c) (UnsafeMutableRawPointer, OpaquePointer, UnsafeMutableRawPointer) -> Void =
419407
{ _, value1, data in
420408
SignalBox1<OpaquePointer>.run(data, value1)
421409
}
422410

423-
addSignal(name: "notify::use-underline", handler: gCallback(handler18)) {
411+
addSignal(name: "notify::use-underline", handler: gCallback(handler17)) {
424412
[weak self] (_: OpaquePointer) in
425413
guard let self = self else { return }
426414
self.notifyUseUnderline?(self)
427415
}
428416

429-
let handler19:
417+
let handler18:
430418
@convention(c) (UnsafeMutableRawPointer, OpaquePointer, UnsafeMutableRawPointer) -> Void =
431419
{ _, value1, data in
432420
SignalBox1<OpaquePointer>.run(data, value1)
433421
}
434422

435-
addSignal(name: "notify::width-chars", handler: gCallback(handler19)) {
423+
addSignal(name: "notify::width-chars", handler: gCallback(handler18)) {
436424
[weak self] (_: OpaquePointer) in
437425
guard let self = self else { return }
438426
self.notifyWidthChars?(self)
439427
}
440428

441-
let handler20:
429+
let handler19:
442430
@convention(c) (UnsafeMutableRawPointer, OpaquePointer, UnsafeMutableRawPointer) -> Void =
443431
{ _, value1, data in
444432
SignalBox1<OpaquePointer>.run(data, value1)
445433
}
446434

447-
addSignal(name: "notify::wrap", handler: gCallback(handler20)) {
435+
addSignal(name: "notify::wrap", handler: gCallback(handler19)) {
448436
[weak self] (_: OpaquePointer) in
449437
guard let self = self else { return }
450438
self.notifyWrap?(self)
451439
}
452440

453-
let handler21:
441+
let handler20:
454442
@convention(c) (UnsafeMutableRawPointer, OpaquePointer, UnsafeMutableRawPointer) -> Void =
455443
{ _, value1, data in
456444
SignalBox1<OpaquePointer>.run(data, value1)
457445
}
458446

459-
addSignal(name: "notify::wrap-mode", handler: gCallback(handler21)) {
447+
addSignal(name: "notify::wrap-mode", handler: gCallback(handler20)) {
460448
[weak self] (_: OpaquePointer) in
461449
guard let self = self else { return }
462450
self.notifyWrapMode?(self)
463451
}
464452

465-
let handler22:
453+
let handler21:
466454
@convention(c) (UnsafeMutableRawPointer, OpaquePointer, UnsafeMutableRawPointer) -> Void =
467455
{ _, value1, data in
468456
SignalBox1<OpaquePointer>.run(data, value1)
469457
}
470458

471-
addSignal(name: "notify::xalign", handler: gCallback(handler22)) {
459+
addSignal(name: "notify::xalign", handler: gCallback(handler21)) {
472460
[weak self] (_: OpaquePointer) in
473461
guard let self = self else { return }
474462
self.notifyXalign?(self)
475463
}
476464

477-
let handler23:
465+
let handler22:
478466
@convention(c) (UnsafeMutableRawPointer, OpaquePointer, UnsafeMutableRawPointer) -> Void =
479467
{ _, value1, data in
480468
SignalBox1<OpaquePointer>.run(data, value1)
481469
}
482470

483-
addSignal(name: "notify::yalign", handler: gCallback(handler23)) {
471+
addSignal(name: "notify::yalign", handler: gCallback(handler22)) {
484472
[weak self] (_: OpaquePointer) in
485473
guard let self = self else { return }
486474
self.notifyYalign?(self)
@@ -630,8 +618,6 @@ public class Label: Widget {
630618

631619
public var notifyMnemonicKeyval: ((Label) -> Void)?
632620

633-
public var notifyMnemonicWidget: ((Label) -> Void)?
634-
635621
public var notifyNaturalWrapMode: ((Label) -> Void)?
636622

637623
public var notifySelectable: ((Label) -> Void)?

Sources/Gtk/Generated/Picture.swift

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -71,17 +71,6 @@ public class Picture: Widget {
7171
widgetPointer = gtk_picture_new_for_paintable(paintable)
7272
}
7373

74-
/// Creates a new `GtkPicture` displaying @pixbuf.
75-
///
76-
/// This is a utility function that calls [ctor@Gtk.Picture.new_for_paintable],
77-
/// See that function for details.
78-
///
79-
/// The pixbuf must not be modified after passing it to this function.
80-
public init(pixbuf: OpaquePointer) {
81-
super.init()
82-
widgetPointer = gtk_picture_new_for_pixbuf(pixbuf)
83-
}
84-
8574
/// Creates a new `GtkPicture` displaying the resource at @resource_path.
8675
///
8776
/// This is a utility function that calls [ctor@Gtk.Picture.new_for_file].

Sources/Gtk/Widgets/Fixed.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public class Fixed: Widget {
6767
public func removeAllChildren() {
6868
for child in children {
6969
gtk_fixed_remove(castedPointer(), child.widgetPointer)
70+
child.parentWidget = nil
7071
}
7172
children = []
7273
}

Sources/Gtk/Widgets/HeaderBar.swift

Lines changed: 0 additions & 38 deletions
This file was deleted.

Sources/Gtk/Widgets/ModifierBox.swift

Lines changed: 0 additions & 58 deletions
This file was deleted.

Sources/Gtk/Widgets/SectionBox.swift

Lines changed: 0 additions & 28 deletions
This file was deleted.

0 commit comments

Comments
 (0)