Fri, 12 Aug 2022 03:44:34 -0500
A bunch of random fixes for the the gtk4 branch
Testing Done:
Compiled
Reviewed at https://reviews.imfreedom.org/r/1581/
/* * Purple - Internet Messaging Library * Copyright (C) Pidgin Developers <devel@pidgin.im> * * Purple is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * * 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 2 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/>. */ #if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION) # error "only <purple.h> may be included directly" #endif #ifndef PURPLE_REQUEST_DATA_H #define PURPLE_REQUEST_DATA_H #include <glib.h> /** * PurpleRequestDatasheet: * * Request Datasheet is a UI abstracted table. */ typedef struct _PurpleRequestDatasheet PurpleRequestDatasheet; typedef struct _PurpleRequestDatasheetRecord PurpleRequestDatasheetRecord; typedef struct _PurpleRequestDatasheetAction PurpleRequestDatasheetAction; typedef void (*PurpleRequestDatasheetActionCb)( PurpleRequestDatasheetRecord *rec, gpointer user_data); typedef gboolean (*PurpleRequestDatasheetActionCheckCb)( PurpleRequestDatasheetRecord *rec, gpointer user_data); /** * PurpleRequestDatasheetColumnType: * @PURPLE_REQUEST_DATASHEET_COLUMN_STRING: The column displays strings. * @PURPLE_REQUEST_DATASHEET_COLUMN_IMAGE: The column displays images. * * The type of data to be shown in a column. */ typedef enum { PURPLE_REQUEST_DATASHEET_COLUMN_STRING, PURPLE_REQUEST_DATASHEET_COLUMN_IMAGE } PurpleRequestDatasheetColumnType; G_BEGIN_DECLS /**************************************************************************/ /* Datasheet API */ /**************************************************************************/ /** * purple_request_datasheet_new: * * Creates new Datasheet. * * Returns: (transfer full): The new datasheet. */ PurpleRequestDatasheet * purple_request_datasheet_new(void); /** * purple_request_datasheet_free: * @sheet: The datasheet. * * Destroys datasheet with all its contents. */ void purple_request_datasheet_free(PurpleRequestDatasheet *sheet); /** * purple_request_datasheet_add_column: * @sheet: The datasheet. * @type: The column type. * @title: The column title (may be %NULL). * * Adds a column to the datasheet. * * You cannot add a column if datasheet contains any data. */ void purple_request_datasheet_add_column(PurpleRequestDatasheet *sheet, PurpleRequestDatasheetColumnType type, const gchar *title); /** * purple_request_datasheet_get_column_count: * @sheet: The datasheet. * * Returns the column count of datasheet. * * Returns: The column count. */ guint purple_request_datasheet_get_column_count(PurpleRequestDatasheet *sheet); /** * purple_request_datasheet_get_column_type: * @sheet: The datasheet. * @col_no: The column number (0 is the first one). * * Returns the column type for a datasheet. * * Returns: The column type. */ PurpleRequestDatasheetColumnType purple_request_datasheet_get_column_type(PurpleRequestDatasheet *sheet, guint col_no); /** * purple_request_datasheet_get_column_title: * @sheet: The datasheet. * @col_no: The column number (0 is the first one). * * Returns the column title for a datasheet. * * Returns: The column title. */ const gchar * purple_request_datasheet_get_column_title(PurpleRequestDatasheet *sheet, guint col_no); /** * purple_request_datasheet_get_records: * @sheet: The datasheet. * * Returns the list of records in a datasheet. * * You shouldn't modify datasheet's data while iterating through it. * * Returns: (element-type PurpleRequestDatasheetRecord) (transfer none): The list of records. */ const GList * purple_request_datasheet_get_records(PurpleRequestDatasheet *sheet); /** * purple_request_datasheet_add_action: * @sheet: The datasheet. * @action: The action. * * Adds an action to the datasheet. * * Action object is owned by the datasheet since this call. */ void purple_request_datasheet_add_action(PurpleRequestDatasheet *sheet, PurpleRequestDatasheetAction *action); /** * purple_request_datasheet_get_actions: * @sheet: The datasheet. * * Returns the list of actions in a datasheet. * * Returns: (element-type PurpleRequestDatasheetAction) (transfer none): The list of actions. */ const GList * purple_request_datasheet_get_actions(PurpleRequestDatasheet *sheet); /**************************************************************************/ /* Datasheet actions API */ /**************************************************************************/ /** * purple_request_datasheet_action_new: * * Creates new datasheet action. * * Returns: (transfer full): The new action. */ PurpleRequestDatasheetAction * purple_request_datasheet_action_new(void); /** * purple_request_datasheet_action_free: * @act: The action. * * Destroys the datasheet action. */ void purple_request_datasheet_action_free(PurpleRequestDatasheetAction *act); /** * purple_request_datasheet_action_set_label: * @act: The action. * @label: The label. * * Sets the localized label for the action. */ void purple_request_datasheet_action_set_label(PurpleRequestDatasheetAction *act, const gchar *label); /** * purple_request_datasheet_action_get_label: * @act: The action. * * Gets the label of action. * * Returns: The localized label text. */ const gchar* purple_request_datasheet_action_get_label(PurpleRequestDatasheetAction *act); /** * purple_request_datasheet_action_set_cb: * @act: The action. * @cb: (scope notified): The callback function. * @user_data: The data to be passed to the callback function. * * Sets the callback for the action. */ void purple_request_datasheet_action_set_cb(PurpleRequestDatasheetAction *act, PurpleRequestDatasheetActionCb cb, gpointer user_data); /** * purple_request_datasheet_action_call: * @act: The action. * @rec: The user selected record. * * Calls the callback of the action. */ void purple_request_datasheet_action_call(PurpleRequestDatasheetAction *act, PurpleRequestDatasheetRecord *rec); /** * purple_request_datasheet_action_set_sens_cb: * @act: The action. * @cb: (scope notified): The callback function, may be %NULL. * @user_data: The data to be passed to the callback function. * * Sets the sensitivity checker for the action. * * If there is no callback set, default is used: the action is enabled, if any * record is active. */ void purple_request_datasheet_action_set_sens_cb( PurpleRequestDatasheetAction *act, PurpleRequestDatasheetActionCheckCb cb, gpointer user_data); /** * purple_request_datasheet_action_is_sensitive: * @act: The action. * @rec: The record. * * Checks, if the action is enabled for the active record. * * Returns: %TRUE, if the action is enabled, %FALSE otherwise. */ gboolean purple_request_datasheet_action_is_sensitive(PurpleRequestDatasheetAction *act, PurpleRequestDatasheetRecord *rec); /**************************************************************************/ /* Datasheet record API */ /**************************************************************************/ /** * purple_request_datasheet_record_get_key: * @rec: The record. * * Returns the key of a record. * * Returns: The key. */ gpointer purple_request_datasheet_record_get_key( const PurpleRequestDatasheetRecord *rec); /** * purple_request_datasheet_record_get_datasheet: * @rec: The record. * * Returns the datasheet of a record. * * Returns: (transfer none): The datasheet. */ PurpleRequestDatasheet * purple_request_datasheet_record_get_datasheet( PurpleRequestDatasheetRecord *rec); /** * purple_request_datasheet_record_find: * @sheet: The datasheet. * @key: The key. * * Looks up for a record in datasheet. * * Returns: (transfer none): The record if found, %NULL otherwise. */ PurpleRequestDatasheetRecord * purple_request_datasheet_record_find(PurpleRequestDatasheet *sheet, gpointer key); /** * purple_request_datasheet_record_add: * @sheet: The datasheet. * @key: The key. * * Adds a record to the datasheet. * * If the specified key already exists in datasheet, old record is returned. * * Returns: (transfer full): The record. */ PurpleRequestDatasheetRecord * purple_request_datasheet_record_add(PurpleRequestDatasheet *sheet, gpointer key); /** * purple_request_datasheet_record_remove: * @sheet: The datasheet. * @key: The key. * * Removes a record from a datasheet. */ void purple_request_datasheet_record_remove(PurpleRequestDatasheet *sheet, gpointer key); /** * purple_request_datasheet_record_remove_all: * @sheet: The datasheet. * * Removes all records from a datasheet. */ void purple_request_datasheet_record_remove_all(PurpleRequestDatasheet *sheet); /** * purple_request_datasheet_record_mark_all_for_rem: * @sheet: The datasheet. * * Marks all records for removal. Record will be unmarked, when touched with * purple_request_datasheet_record_add. * * See purple_request_datasheet_record_add(). */ void purple_request_datasheet_record_mark_all_for_rem(PurpleRequestDatasheet *sheet); /** * purple_request_datasheet_record_remove_marked: * @sheet: The datasheet. * * Removes all marked records. * * See purple_request_datasheet_record_mark_all_for_rem(). */ void purple_request_datasheet_record_remove_marked(PurpleRequestDatasheet *sheet); /** * purple_request_datasheet_record_set_string_data: * @rec: The record. * @col_no: The column. * @data: The data. * * Sets data for a string column of specified record. */ void purple_request_datasheet_record_set_string_data( PurpleRequestDatasheetRecord *rec, guint col_no, const gchar *data); /** * purple_request_datasheet_record_set_image_data: * @rec: The record. * @col_no: The column. * @stock_id: The stock identifier of a image. * * Sets data for a image column of specified record. */ void purple_request_datasheet_record_set_image_data( PurpleRequestDatasheetRecord *rec, guint col_no, const gchar *stock_id); /** * purple_request_datasheet_record_get_string_data: * @rec: The record. * @col_no: The column. * * Returns data for a string column of specified record. * * Returns: The data. */ const gchar * purple_request_datasheet_record_get_string_data( const PurpleRequestDatasheetRecord *rec, guint col_no); /** * purple_request_datasheet_record_get_image_data: * @rec: The record. * @col_no: The column. * * Returns data for an image column of specified record. * * Returns: The stock id of an image. */ const gchar * purple_request_datasheet_record_get_image_data( const PurpleRequestDatasheetRecord *rec, guint col_no); G_END_DECLS #endif /* PURPLE_REQUEST_DATA_H */