Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
gtk-macros
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
2
Issues
2
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Felix Häcker
gtk-macros
Commits
910ca52f
Verified
Commit
910ca52f
authored
Feb 23, 2020
by
Felix Häcker
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add few macros
parent
7292a05e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
6 deletions
+40
-6
src/lib.rs
src/lib.rs
+40
-6
No files found.
src/lib.rs
View file @
910ca52f
#[cfg(test)]
mod
tests
{
#[test]
fn
it_works
()
{
assert_eq!
(
2
+
2
,
4
);
}
#[macro_export]
macro_rules!
get_widget
{
(
$builder:expr
,
$wtype:ty
,
$name:ident
)
=>
{
let
$name
:
$wtype
=
$builder
.get_object
(
stringify!
(
$name
))
.expect
(
&
format!
(
"Could not find widget
\"
{}
\"
"
,
stringify!
(
$name
)));
};
}
#[macro_export]
macro_rules!
spawn
{
(
$future:expr
)
=>
{
let
ctx
=
glib
::
MainContext
::
default
();
ctx
.spawn_local
(
$future
);
};
}
#[macro_export]
macro_rules!
send
{
(
$sender:expr
,
$action:expr
)
=>
{
if
let
Err
(
err
)
=
$sender
.send
(
$action
)
{
error!
(
"Failed to send
\"
{}
\"
action due to {}"
,
stringify!
(
$action
),
err
);
}
};
}
#[macro_export]
macro_rules!
action
{
(
$actions_group:expr
,
$name:expr
,
$callback:expr
)
=>
{
let
simple_action
=
gio
::
SimpleAction
::
new
(
$name
,
None
);
simple_action
.connect_activate
(
$callback
);
$actions_group
.add_action
(
&
simple_action
);
};
}
#[macro_export]
macro_rules!
stateful_action
{
(
$actions_group:expr
,
$name:expr
,
$value:expr
,
$callback:expr
)
=>
{
let
simple_action
=
gio
::
SimpleAction
::
new_stateful
(
$name
,
None
,
&
$value
.to_variant
());
simple_action
.connect_activate
(
$callback
);
$actions_group
.add_action
(
&
simple_action
);
};
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment