diff options
| author | Isaac Freund <ifreund@ifreund.xyz> | 2020-06-01 15:16:18 +0200 |
|---|---|---|
| committer | Isaac Freund <ifreund@ifreund.xyz> | 2020-06-01 15:16:18 +0200 |
| commit | 62abfc5ee508a4b4186b120619c7f428ed95fa43 (patch) | |
| tree | 0cd5f61cd8699404c664cc84388f942508e7fe69 /src/Mapping.zig | |
| parent | 70cc3185181109a43871b65771891ce3d733b0fe (diff) | |
| download | river-62abfc5ee508a4b4186b120619c7f428ed95fa43.tar.gz river-62abfc5ee508a4b4186b120619c7f428ed95fa43.tar.xz | |
Rename bind -> map
Diffstat (limited to 'src/Mapping.zig')
| -rw-r--r-- | src/Mapping.zig | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/Mapping.zig b/src/Mapping.zig new file mode 100644 index 0000000..61df624 --- /dev/null +++ b/src/Mapping.zig @@ -0,0 +1,46 @@ +// This file is part of river, a dynamic tiling wayland compositor. +// +// Copyright 2020 Isaac Freund +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <https://www.gnu.org/licenses/>. + +const Self = @This(); + +const std = @import("std"); + +const c = @import("c.zig"); + +keysym: c.xkb_keysym_t, +modifiers: u32, +command_args: []const []const u8, + +pub fn init( + allocator: *std.mem.Allocator, + keysym: c.xkb_keysym_t, + modifiers: u32, + command_args: []const []const u8, +) !Self { + var owned_args = try allocator.alloc([]u8, command_args.len); + for (command_args) |arg, i| owned_args[i] = try std.mem.dupe(allocator, u8, arg); + return Self{ + .keysym = keysym, + .modifiers = modifiers, + .command_args = owned_args, + }; +} + +pub fn deinit(self: Self, allocator: *std.mem.Allocator) void { + for (self.command_args) |arg| allocator.free(arg); + allocator.free(self.command_args); +} |
