This syntax means that data is a stack-allocated fixed-size array, the initial contents of which are given in the braces. A direct translation to Rust would thus look like this:
let data: [gpointer; 4] = [button, socket, entry, expander];
Note that the "array" part comes from the [] after data. For more general types, e.g. foo bar = { ... }, this would involve aggregate initialization (note that the link is for C++, but AFAIK this specific part works mostly the same in C; in C++ brace initialization can have more complex meaning).