| libxfce4mcs Reference Manual |
|---|
mcs-common — common MCS utility functions and types
struct McsBuffer; struct McsColor; struct McsList; struct McsChannel; struct McsChannelList; struct McsSetting; enum McsType; enum McsResult; enum McsManagerCheck; McsManagerCheck mcs_manager_check_running (Display *display, int screen); McsSetting* mcs_setting_copy (McsSetting *setting); void mcs_setting_free (McsSetting *setting); int mcs_setting_equal (McsSetting *setting_a, McsSetting *setting_b); void mcs_list_free (McsList *list); McsList* mcs_list_copy (McsList *list); McsResult mcs_list_insert (McsList **list, McsSetting *setting); McsSetting* mcs_list_lookup (McsList *list, const gchar *name); McsResult mcs_list_delete (McsList **list, const gchar *name); gchar mcs_byte_order (void); #define MCS_PAD (n,m)
struct McsBuffer {
gchar byte_order;
size_t len;
guchar *data;
guchar *pos;
};
A data storage buffer.
struct McsColor {
guint16 red, green, blue, alpha;
};
A structure representing a color value.
struct McsList {
McsSetting *setting;
McsList *next;
};
A singly-linked list structure containing McsSetting structs.
| McsSetting *setting | The McsSetting in this list node. |
| McsList *next | A pointer to the next node in the list. |
struct McsChannel {
gchar *channel_name;
Atom channel_atom;
McsList *settings;
gboolean raw;
int ref_count;
};
A representation of a settings channel.
struct McsChannelList {
McsChannel *channel;
McsChannelList *next;
};
A singly-linked list structure containing McsChannel structs.
| McsChannel *channel | The McsChannel in this list node. |
| McsChannelList *next | A pointer to the next node in the list. |
struct McsSetting {
gchar *name;
gchar *channel_name;
McsType type;
union
{
int v_int;
gchar *v_string;
McsColor v_color;
}
data;
A structure representing a setting controlled by the MCS manager.
typedef enum
{
MCS_TYPE_INT = 0,
MCS_TYPE_STRING = 1,
MCS_TYPE_COLOR = 2
}
McsType;
An enumerated type for MCS settings types.
| MCS_TYPE_INT | The setting is an integer value. |
| MCS_TYPE_STRING | The setting is a string value. |
| MCS_TYPE_COLOR | The setting is an McsColor value. |
typedef enum
{
MCS_SUCCESS,
MCS_NO_MEM,
MCS_ACCESS,
MCS_FAILED,
MCS_NO_ENTRY,
MCS_DUPLICATE_ENTRY,
MCS_NO_CHANNEL
}
McsResult;
An enumerated type for detailing error conditions from MCS functions.
| MCS_SUCCESS | The command commpleted successfully. |
| MCS_NO_MEM | The command failed due to an out-of-memory condition. |
| MCS_ACCESS | The command failed because you do not have the proper access privileges. |
| MCS_FAILED | The command failed for an unknown or generic reason. |
| MCS_NO_ENTRY | The command failed because no entry was found matching what you specified. |
| MCS_DUPLICATE_ENTRY | The command failed because an entry of that name already exists. |
| MCS_NO_CHANNEL | The command failed because the channel specified does not exist. |
typedef enum
{
MCS_MANAGER_NONE,
MCS_MANAGER_STD,
MCS_MANAGER_MULTI_CHANNEL,
MCS_MANAGER_BOTH
}
McsManagerCheck;
An enumerated type detailing what kind of MCS manager is running.
| MCS_MANAGER_NONE | No MCS manager is running. |
| MCS_MANAGER_STD | A standard MCS manager is running. |
| MCS_MANAGER_MULTI_CHANNEL | A multi-channel MCS manager is running. |
| MCS_MANAGER_BOTH | An MCS manager that supports both single- and multi-channel access is running. |
McsManagerCheck mcs_manager_check_running (Display *display, int screen);
Checks to see if there is an MCS manager running on display and screen.
| display : | The X display on which the MCS manager may be running. |
| screen : | The X screen on which the MCS manager may be running. |
| Returns : | An McsManagerCheck value describing what kind of MCS manager (if any) is running. |
McsSetting* mcs_setting_copy (McsSetting *setting);
Makes a copy of setting. You should free the result with mcs_setting_free() when it is no longer needed.
| setting : | An existing McsSetting. |
| Returns : | A new McsSetting, initialised to the value of setting. |
void mcs_setting_free (McsSetting *setting);
Frees all resources associated with setting.
| setting : | An McsSetting. |
int mcs_setting_equal (McsSetting *setting_a, McsSetting *setting_b);
Checks to see if setting_a and setting_b represent the same setting data.
| setting_a : | An McsSetting. |
| setting_b : | An McsSetting. |
| Returns : | 1 if the two settings are the same, 0 otherwise. |
void mcs_list_free (McsList *list);
Frees all memory associated with list.
| list : | An McsList. |
McsList* mcs_list_copy (McsList *list);
Makes a copy of list. You should free the result with mcs_list_free() when it is no longer needed.
McsResult mcs_list_insert (McsList **list, McsSetting *setting);
Inserts setting into list, updating the list pointer if necessary.
| list : | A pointer to an existing McsList. |
| setting : | An McsSetting to insert into the list. |
| Returns : | MCS_SUCCESS if the item was successfully inserted. |
McsSetting* mcs_list_lookup (McsList *list, const gchar *name);
Looks for a setting with name name in the McsList.
| list : | An McsList. |
| name : | The name of a setting. |
| Returns : | The corresponding McsSetting, or NULL if the setting was not found. |
McsResult mcs_list_delete (McsList **list, const gchar *name);
Deletes the McsSetting with name name from list, adjusting the list pointer if necessary.
| list : | A pointer to an existing McsList. |
| name : | The name of the item to delete. |
| Returns : | MCS_SUCCESS on success. |
gchar mcs_byte_order (void);
Gets the byte ordering for this system.
| Returns : | Either LSBFirst or MSBFirst. |
| << mcs-client | mcs-manager >> |