forked from Leak_Technologies/VideoTools
Vendor gotk3 library to ensure consistent GTK3 bindings across environments and simplify dependency management. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
656 lines
21 KiB
C
656 lines
21 KiB
C
/*
|
|
* Copyright (c) 2013-2014 Conformal Systems <info@conformal.com>
|
|
*
|
|
* This file originated from: http://opensource.conformal.com/
|
|
*
|
|
* Permission to use, copy, modify, and distribute this software for any
|
|
* purpose with or without fee is hereby granted, provided that the above
|
|
* copyright notice and this permission notice appear in all copies.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
// gotk3_callbackDelete satisfies the GDestroyNotify type.
|
|
extern void gotk3_callbackDelete(gpointer callback_id);
|
|
|
|
static GtkAboutDialog *toGtkAboutDialog(void *p) {
|
|
return (GTK_ABOUT_DIALOG(p));
|
|
}
|
|
|
|
static GtkAppChooser *toGtkAppChooser(void *p) { return (GTK_APP_CHOOSER(p)); }
|
|
|
|
static GtkAppChooserButton *toGtkAppChooserButton(void *p) {
|
|
return (GTK_APP_CHOOSER_BUTTON(p));
|
|
}
|
|
|
|
static GtkAppChooserDialog *toGtkAppChooserDialog(void *p) {
|
|
return (GTK_APP_CHOOSER_DIALOG(p));
|
|
}
|
|
|
|
static GtkAppChooserWidget *toGtkAppChooserWidget(void *p) {
|
|
return (GTK_APP_CHOOSER_WIDGET(p));
|
|
}
|
|
|
|
static GtkApplication *toGtkApplication(void *p) {
|
|
return (GTK_APPLICATION(p));
|
|
}
|
|
|
|
static GtkApplicationWindow *toGtkApplicationWindow(void *p) {
|
|
return (GTK_APPLICATION_WINDOW(p));
|
|
}
|
|
|
|
static GtkAssistant *toGtkAssistant(void *p) { return (GTK_ASSISTANT(p)); }
|
|
|
|
static GtkCalendar *toGtkCalendar(void *p) { return (GTK_CALENDAR(p)); }
|
|
|
|
static GtkColorChooserDialog *toGtkColorChooserDialog(void *p) {
|
|
return (GTK_COLOR_CHOOSER_DIALOG(p));
|
|
}
|
|
|
|
static GtkFontChooserDialog *toGtkFontChooserDialog(void *p) {
|
|
return (GTK_FONT_CHOOSER_DIALOG(p));
|
|
}
|
|
|
|
static GtkDrawingArea *toGtkDrawingArea(void *p) {
|
|
return (GTK_DRAWING_AREA(p));
|
|
}
|
|
|
|
static GtkCellRendererSpinner *toGtkCellRendererSpinner(void *p) {
|
|
return (GTK_CELL_RENDERER_SPINNER(p));
|
|
}
|
|
|
|
static GtkEventBox *toGtkEventBox(void *p) { return (GTK_EVENT_BOX(p)); }
|
|
|
|
static GtkGrid *toGtkGrid(void *p) { return (GTK_GRID(p)); }
|
|
|
|
static GtkWidget *toGtkWidget(void *p) { return (GTK_WIDGET(p)); }
|
|
|
|
static GtkContainer *toGtkContainer(void *p) { return (GTK_CONTAINER(p)); }
|
|
|
|
static GtkOverlay *toGtkOverlay(void *p) { return (GTK_OVERLAY(p)); }
|
|
|
|
static GtkPageSetup *toGtkPageSetup(void *p) { return (GTK_PAGE_SETUP(p)); }
|
|
|
|
static GtkPaned *toGtkPaned(void *p) { return (GTK_PANED(p)); }
|
|
|
|
static GtkPrintContext *toGtkPrintContext(void *p) {
|
|
return (GTK_PRINT_CONTEXT(p));
|
|
}
|
|
|
|
static GtkPrintOperation *toGtkPrintOperation(void *p) {
|
|
return (GTK_PRINT_OPERATION(p));
|
|
}
|
|
|
|
static GtkPrintOperationPreview *toGtkPrintOperationPreview(void *p) {
|
|
return (GTK_PRINT_OPERATION_PREVIEW(p));
|
|
}
|
|
|
|
static GtkPrintSettings *toGtkPrintSettings(void *p) {
|
|
return (GTK_PRINT_SETTINGS(p));
|
|
}
|
|
|
|
static GtkProgressBar *toGtkProgressBar(void *p) {
|
|
return (GTK_PROGRESS_BAR(p));
|
|
}
|
|
|
|
static GtkLevelBar *toGtkLevelBar(void *p) { return (GTK_LEVEL_BAR(p)); }
|
|
|
|
static GtkBin *toGtkBin(void *p) { return (GTK_BIN(p)); }
|
|
|
|
static GtkWindow *toGtkWindow(void *p) { return (GTK_WINDOW(p)); }
|
|
|
|
static GtkWindowGroup *toGtkWindowGroup(void *p) {
|
|
return (GTK_WINDOW_GROUP(p));
|
|
}
|
|
|
|
static GtkBox *toGtkBox(void *p) { return (GTK_BOX(p)); }
|
|
|
|
static GtkStatusbar *toGtkStatusbar(void *p) { return (GTK_STATUSBAR(p)); }
|
|
|
|
static GtkLabel *toGtkLabel(void *p) { return (GTK_LABEL(p)); }
|
|
|
|
static GtkNotebook *toGtkNotebook(void *p) { return (GTK_NOTEBOOK(p)); }
|
|
|
|
static GtkEntry *toGtkEntry(void *p) { return (GTK_ENTRY(p)); }
|
|
|
|
static GtkEntryBuffer *toGtkEntryBuffer(void *p) {
|
|
return (GTK_ENTRY_BUFFER(p));
|
|
}
|
|
|
|
static GtkEntryCompletion *toGtkEntryCompletion(void *p) {
|
|
return (GTK_ENTRY_COMPLETION(p));
|
|
}
|
|
|
|
static GtkAdjustment *toGtkAdjustment(void *p) { return (GTK_ADJUSTMENT(p)); }
|
|
|
|
static GtkAccelGroup *toGtkAccelGroup(void *p) { return (GTK_ACCEL_GROUP(p)); }
|
|
|
|
static GtkAccelMap *toGtkAccelMap(void *p) { return (GTK_ACCEL_MAP(p)); }
|
|
|
|
static GtkTextTag *toGtkTextTag(void *p) { return (GTK_TEXT_TAG(p)); }
|
|
|
|
static GtkIconView *toGtkIconView(void *p) { return (GTK_ICON_VIEW(p)); }
|
|
|
|
static GtkImage *toGtkImage(void *p) { return (GTK_IMAGE(p)); }
|
|
|
|
static GtkButtonBox *toGtkButtonBox(void *p) { return (GTK_BUTTON_BOX(p)); }
|
|
|
|
static GtkButton *toGtkButton(void *p) { return (GTK_BUTTON(p)); }
|
|
|
|
static GtkScaleButton *toGtkScaleButton(void *p) {
|
|
return (GTK_SCALE_BUTTON(p));
|
|
}
|
|
|
|
static GtkColorButton *toGtkColorButton(void *p) {
|
|
return (GTK_COLOR_BUTTON(p));
|
|
}
|
|
|
|
static GtkViewport *toGtkViewport(void *p) { return (GTK_VIEWPORT(p)); }
|
|
|
|
static GtkVolumeButton *toGtkVolumeButton(void *p) {
|
|
return (GTK_VOLUME_BUTTON(p));
|
|
}
|
|
|
|
static GtkScrollable *toGtkScrollable(void *p) { return (GTK_SCROLLABLE(p)); }
|
|
|
|
static GtkScrolledWindow *toGtkScrolledWindow(void *p) {
|
|
return (GTK_SCROLLED_WINDOW(p));
|
|
}
|
|
|
|
static GtkMenuItem *toGtkMenuItem(void *p) { return (GTK_MENU_ITEM(p)); }
|
|
|
|
static GtkMenu *toGtkMenu(void *p) { return (GTK_MENU(p)); }
|
|
|
|
static GtkMenuShell *toGtkMenuShell(void *p) { return (GTK_MENU_SHELL(p)); }
|
|
|
|
static GtkMenuBar *toGtkMenuBar(void *p) { return (GTK_MENU_BAR(p)); }
|
|
|
|
static GtkSizeGroup *toGtkSizeGroup(void *p) { return (GTK_SIZE_GROUP(p)); }
|
|
|
|
static GtkSpinButton *toGtkSpinButton(void *p) { return (GTK_SPIN_BUTTON(p)); }
|
|
|
|
static GtkSpinner *toGtkSpinner(void *p) { return (GTK_SPINNER(p)); }
|
|
|
|
static GtkComboBox *toGtkComboBox(void *p) { return (GTK_COMBO_BOX(p)); }
|
|
|
|
static GtkComboBoxText *toGtkComboBoxText(void *p) {
|
|
return (GTK_COMBO_BOX_TEXT(p));
|
|
}
|
|
|
|
static GtkLinkButton *toGtkLinkButton(void *p) { return (GTK_LINK_BUTTON(p)); }
|
|
|
|
static GtkLockButton *toGtkLockButton(void *p) { return (GTK_LOCK_BUTTON(p)); }
|
|
|
|
static GtkLayout *toGtkLayout(void *p) { return (GTK_LAYOUT(p)); }
|
|
|
|
static GtkTreeModelSort *toGtkTreeModelSortable(void *p) {
|
|
return (GTK_TREE_MODEL_SORT(p));
|
|
}
|
|
|
|
static GtkListStore *toGtkListStore(void *p) { return (GTK_LIST_STORE(p)); }
|
|
|
|
static GtkSwitch *toGtkSwitch(void *p) { return (GTK_SWITCH(p)); }
|
|
|
|
static GtkTextView *toGtkTextView(void *p) { return (GTK_TEXT_VIEW(p)); }
|
|
|
|
static GtkTextMark *toGtkTextMark(void *p) { return (GTK_TEXT_MARK(p)); }
|
|
|
|
static GtkTextTagTable *toGtkTextTagTable(void *p) {
|
|
return (GTK_TEXT_TAG_TABLE(p));
|
|
}
|
|
|
|
static GtkTextBuffer *toGtkTextBuffer(void *p) { return (GTK_TEXT_BUFFER(p)); }
|
|
|
|
static GtkTreeModel *toGtkTreeModel(void *p) { return (GTK_TREE_MODEL(p)); }
|
|
|
|
static GtkTreeModelFilter *toGtkTreeModelFilter(void *p) {
|
|
return (GTK_TREE_MODEL_FILTER(p));
|
|
}
|
|
|
|
static GtkCellRenderer *toGtkCellRenderer(void *p) {
|
|
return (GTK_CELL_RENDERER(p));
|
|
}
|
|
|
|
static GtkCellEditable *toGtkCellEditable(void *p) {
|
|
return (GTK_CELL_EDITABLE(p));
|
|
}
|
|
|
|
static GtkCellRendererPixbuf *toGtkCellRendererPixbuf(void *p) {
|
|
return (GTK_CELL_RENDERER_PIXBUF(p));
|
|
}
|
|
|
|
static GtkCellRendererProgress *toGtkCellRendererProgress(void *p) {
|
|
return (GTK_CELL_RENDERER_PROGRESS(p));
|
|
}
|
|
|
|
static GtkCellRendererText *toGtkCellRendererText(void *p) {
|
|
return (GTK_CELL_RENDERER_TEXT(p));
|
|
}
|
|
|
|
static GtkCellRendererToggle *toGtkCellRendererToggle(void *p) {
|
|
return (GTK_CELL_RENDERER_TOGGLE(p));
|
|
}
|
|
|
|
static GtkCellRendererCombo *toGtkCellRendererCombo(void *p) {
|
|
return (GTK_CELL_RENDERER_COMBO(p));
|
|
}
|
|
|
|
static GtkCellRendererAccel *toGtkCellRendererAccel(void *p) {
|
|
return (GTK_CELL_RENDERER_ACCEL(p));
|
|
}
|
|
|
|
static GtkCellRendererSpin *toGtkCellRendererSpin(void *p) {
|
|
return (GTK_CELL_RENDERER_SPIN(p));
|
|
}
|
|
|
|
static GtkCellLayout *toGtkCellLayout(void *p) { return (GTK_CELL_LAYOUT(p)); }
|
|
|
|
static GtkCellArea *toGtkCellArea(void *p) { return (GTK_CELL_AREA(p)); }
|
|
|
|
static GtkCellAreaContext *toGtkCellAreaContext(void *p) {
|
|
return (GTK_CELL_AREA_CONTEXT(p));
|
|
}
|
|
|
|
static GtkCellAreaBox *toGtkCellAreaBox(void *p) {
|
|
return (GTK_CELL_AREA_BOX(p));
|
|
}
|
|
|
|
static GtkOrientable *toGtkOrientable(void *p) { return (GTK_ORIENTABLE(p)); }
|
|
|
|
static GtkTreeStore *toGtkTreeStore(void *p) { return (GTK_TREE_STORE(p)); }
|
|
|
|
static GtkTreeView *toGtkTreeView(void *p) { return (GTK_TREE_VIEW(p)); }
|
|
|
|
static GtkTreeViewColumn *toGtkTreeViewColumn(void *p) {
|
|
return (GTK_TREE_VIEW_COLUMN(p));
|
|
}
|
|
|
|
static GtkTreeSelection *toGtkTreeSelection(void *p) {
|
|
return (GTK_TREE_SELECTION(p));
|
|
}
|
|
|
|
static GtkTreeModelSort *toGtkTreeModelSort(void *p) {
|
|
return (GTK_TREE_MODEL_SORT(p));
|
|
}
|
|
|
|
static GtkTreeSortable *toGtkTreeSortable(void *p) {
|
|
return (GTK_TREE_SORTABLE(p));
|
|
}
|
|
|
|
static GtkClipboard *toGtkClipboard(void *p) { return (GTK_CLIPBOARD(p)); }
|
|
|
|
static GtkDialog *toGtkDialog(void *p) { return (GTK_DIALOG(p)); }
|
|
|
|
static GtkMessageDialog *toGtkMessageDialog(void *p) {
|
|
return (GTK_MESSAGE_DIALOG(p));
|
|
}
|
|
|
|
static GtkBuilder *toGtkBuilder(void *p) { return (GTK_BUILDER(p)); }
|
|
|
|
static GtkSeparatorMenuItem *toGtkSeparatorMenuItem(void *p) {
|
|
return (GTK_SEPARATOR_MENU_ITEM(p));
|
|
}
|
|
|
|
static GtkCheckButton *toGtkCheckButton(void *p) {
|
|
return (GTK_CHECK_BUTTON(p));
|
|
}
|
|
|
|
static GtkToggleButton *toGtkToggleButton(void *p) {
|
|
return (GTK_TOGGLE_BUTTON(p));
|
|
}
|
|
|
|
static GtkFontButton *toGtkFontButton(void *p) { return (GTK_FONT_BUTTON(p)); }
|
|
|
|
static GtkFrame *toGtkFrame(void *p) { return (GTK_FRAME(p)); }
|
|
|
|
static GtkAspectFrame *toGtkAspectFrame(void *p) {
|
|
return (GTK_ASPECT_FRAME(p));
|
|
}
|
|
|
|
static GtkSeparator *toGtkSeparator(void *p) { return (GTK_SEPARATOR(p)); }
|
|
|
|
static GtkScale *toGtkScale(void *p) { return (GTK_SCALE(p)); }
|
|
|
|
static GtkScrollbar *toGtkScrollbar(void *p) { return (GTK_SCROLLBAR(p)); }
|
|
|
|
static GtkRange *toGtkRange(void *p) { return (GTK_RANGE(p)); }
|
|
|
|
static GtkSearchEntry *toGtkSearchEntry(void *p) {
|
|
return (GTK_SEARCH_ENTRY(p));
|
|
}
|
|
|
|
static GtkOffscreenWindow *toGtkOffscreenWindow(void *p) {
|
|
return (GTK_OFFSCREEN_WINDOW(p));
|
|
}
|
|
|
|
static GtkExpander *toGtkExpander(void *p) { return (GTK_EXPANDER(p)); }
|
|
|
|
static GtkFileChooser *toGtkFileChooser(void *p) {
|
|
return (GTK_FILE_CHOOSER(p));
|
|
}
|
|
|
|
static GtkFileChooserButton *toGtkFileChooserButton(void *p) {
|
|
return (GTK_FILE_CHOOSER_BUTTON(p));
|
|
}
|
|
|
|
static GtkFileChooserDialog *toGtkFileChooserDialog(void *p) {
|
|
return (GTK_FILE_CHOOSER_DIALOG(p));
|
|
}
|
|
|
|
static GtkFileChooserWidget *toGtkFileChooserWidget(void *p) {
|
|
return (GTK_FILE_CHOOSER_WIDGET(p));
|
|
}
|
|
|
|
static GtkFileFilter *toGtkFileFilter(void *p) { return (GTK_FILE_FILTER(p)); }
|
|
|
|
static GtkMenuButton *toGtkMenuButton(void *p) { return (GTK_MENU_BUTTON(p)); }
|
|
|
|
static GtkRadioButton *toGtkRadioButton(void *p) {
|
|
return (GTK_RADIO_BUTTON(p));
|
|
}
|
|
|
|
static GtkRecentChooser *toGtkRecentChooser(void *p) {
|
|
return (GTK_RECENT_CHOOSER(p));
|
|
}
|
|
|
|
static GtkRecentChooserMenu *toGtkRecentChooserMenu(void *p) {
|
|
return (GTK_RECENT_CHOOSER_MENU(p));
|
|
}
|
|
|
|
static GtkColorChooser *toGtkColorChooser(void *p) {
|
|
return (GTK_COLOR_CHOOSER(p));
|
|
}
|
|
|
|
static GtkFontChooser *toGtkFontChooser(void *p) {
|
|
return (GTK_FONT_CHOOSER(p));
|
|
}
|
|
|
|
static GtkRecentFilter *toGtkRecentFilter(void *p) {
|
|
return (GTK_RECENT_FILTER(p));
|
|
}
|
|
|
|
static GtkRecentManager *toGtkRecentManager(void *p) {
|
|
return (GTK_RECENT_MANAGER(p));
|
|
}
|
|
|
|
static GtkCheckMenuItem *toGtkCheckMenuItem(void *p) {
|
|
return (GTK_CHECK_MENU_ITEM(p));
|
|
}
|
|
|
|
static GtkRadioMenuItem *toGtkRadioMenuItem(void *p) {
|
|
return (GTK_RADIO_MENU_ITEM(p));
|
|
}
|
|
|
|
static GtkToolItem *toGtkToolItem(void *p) { return (GTK_TOOL_ITEM(p)); }
|
|
|
|
static GtkToolbar *toGtkToolbar(void *p) { return (GTK_TOOLBAR(p)); }
|
|
|
|
static GtkTooltip *toGtkTooltip(void *p) { return (GTK_TOOLTIP(p)); }
|
|
|
|
static GtkEditable *toGtkEditable(void *p) { return (GTK_EDITABLE(p)); }
|
|
|
|
static GtkToolButton *toGtkToolButton(void *p) { return (GTK_TOOL_BUTTON(p)); }
|
|
|
|
static GtkToggleToolButton *toGtkToggleToolButton(void *p) {
|
|
return (GTK_TOGGLE_TOOL_BUTTON(p));
|
|
}
|
|
|
|
static GtkSeparatorToolItem *toGtkSeparatorToolItem(void *p) {
|
|
return (GTK_SEPARATOR_TOOL_ITEM(p));
|
|
}
|
|
|
|
static GtkCssProvider *toGtkCssProvider(void *p) {
|
|
return (GTK_CSS_PROVIDER(p));
|
|
}
|
|
|
|
static GtkStyleContext *toGtkStyleContext(void *p) {
|
|
return (GTK_STYLE_CONTEXT(p));
|
|
}
|
|
|
|
static GtkStyleProvider *toGtkStyleProvider(void *p) {
|
|
return (GTK_STYLE_PROVIDER(p));
|
|
}
|
|
|
|
static GtkInfoBar *toGtkInfoBar(void *p) { return (GTK_INFO_BAR(p)); }
|
|
|
|
static GMenuModel *toGMenuModel(void *p) { return (G_MENU_MODEL(p)); }
|
|
|
|
static GActionGroup *toGActionGroup(void *p) { return (G_ACTION_GROUP(p)); }
|
|
|
|
static GdkPixbuf *toGdkPixbuf(void *p) { return (GDK_PIXBUF(p)); }
|
|
|
|
static GdkScreen *toGdkScreen(void *p) { return (GDK_SCREEN(p)); }
|
|
|
|
static GdkDevice *toGdkDevice(void *p) { return (GDK_DEVICE(p)); }
|
|
|
|
static GObject *toGObject(void *p) { return (G_OBJECT(p)); }
|
|
|
|
static GType *alloc_types(int n) { return ((GType *)g_new0(GType, n)); }
|
|
|
|
static void set_type(GType *types, int n, GType t) { types[n] = t; }
|
|
|
|
// _gtk_test_init is a wrapper to use gtk_test_init directly from go.
|
|
// The variadic part on gtk_test_init is not used at the moment, according to
|
|
// the documentation.
|
|
static void _gtk_test_init(int *argcp, char ***argvp) {
|
|
gtk_test_init(argcp, argvp);
|
|
}
|
|
|
|
static GtkTreeViewColumn *_gtk_tree_view_column_new_with_attributes_one(
|
|
const gchar *title, GtkCellRenderer *renderer, const gchar *attribute,
|
|
gint column) {
|
|
GtkTreeViewColumn *tvc;
|
|
|
|
tvc = gtk_tree_view_column_new_with_attributes(title, renderer, attribute,
|
|
column, NULL);
|
|
return (tvc);
|
|
}
|
|
|
|
static void _gtk_list_store_set(GtkListStore *list_store, GtkTreeIter *iter,
|
|
gint column, void *value) {
|
|
gtk_list_store_set(list_store, iter, column, value, -1);
|
|
}
|
|
|
|
static void _gtk_tree_store_set(GtkTreeStore *store, GtkTreeIter *iter,
|
|
gint column, void *value) {
|
|
gtk_tree_store_set(store, iter, column, value, -1);
|
|
}
|
|
|
|
extern gboolean substring_match_equal_func(GtkTreeModel *model, gint column,
|
|
gchar *key, GtkTreeIter *iter,
|
|
gpointer data);
|
|
|
|
static GtkWidget *_gtk_message_dialog_new(GtkWindow *parent,
|
|
GtkDialogFlags flags,
|
|
GtkMessageType type,
|
|
GtkButtonsType buttons, char *msg) {
|
|
GtkWidget *w;
|
|
|
|
w = gtk_message_dialog_new(parent, flags, type, buttons, "%s", msg);
|
|
return (w);
|
|
}
|
|
|
|
static GtkWidget *_gtk_message_dialog_new_with_markup(GtkWindow *parent,
|
|
GtkDialogFlags flags,
|
|
GtkMessageType type,
|
|
GtkButtonsType buttons,
|
|
char *msg) {
|
|
GtkWidget *w;
|
|
|
|
w = gtk_message_dialog_new_with_markup(parent, flags, type, buttons, "%s",
|
|
msg);
|
|
return (w);
|
|
}
|
|
|
|
static void
|
|
_gtk_message_dialog_format_secondary_text(GtkMessageDialog *message_dialog,
|
|
const gchar *msg) {
|
|
gtk_message_dialog_format_secondary_text(message_dialog, "%s", msg);
|
|
}
|
|
|
|
static void
|
|
_gtk_message_dialog_format_secondary_markup(GtkMessageDialog *message_dialog,
|
|
const gchar *msg) {
|
|
gtk_message_dialog_format_secondary_markup(message_dialog, "%s", msg);
|
|
}
|
|
|
|
static const gchar *object_get_class_name(GObject *object) {
|
|
return G_OBJECT_CLASS_NAME(G_OBJECT_GET_CLASS(object));
|
|
}
|
|
|
|
static GtkWidget *gtk_file_chooser_dialog_new_1(const gchar *title,
|
|
GtkWindow *parent,
|
|
GtkFileChooserAction action,
|
|
const gchar *first_button_text,
|
|
int first_button_id) {
|
|
return gtk_file_chooser_dialog_new(title, parent, action, first_button_text,
|
|
first_button_id, NULL);
|
|
}
|
|
|
|
static GtkWidget *gtk_file_chooser_dialog_new_2(
|
|
const gchar *title, GtkWindow *parent, GtkFileChooserAction action,
|
|
const gchar *first_button_text, int first_button_id,
|
|
const gchar *second_button_text, int second_button_id) {
|
|
return gtk_file_chooser_dialog_new(title, parent, action, first_button_text,
|
|
first_button_id, second_button_text,
|
|
second_button_id, NULL);
|
|
}
|
|
|
|
static void _gtk_widget_hide_on_delete(GtkWidget *w) {
|
|
g_signal_connect(GTK_WIDGET(w), "delete-event",
|
|
G_CALLBACK(gtk_widget_hide_on_delete), NULL);
|
|
}
|
|
|
|
static inline gchar **make_strings(int count) {
|
|
return (gchar **)malloc(sizeof(gchar *) * count);
|
|
}
|
|
|
|
static inline void destroy_strings(gchar **strings) { free(strings); }
|
|
|
|
static inline gchar *get_string(gchar **strings, int n) { return strings[n]; }
|
|
|
|
static inline void set_string(gchar **strings, int n, gchar *str) {
|
|
strings[n] = str;
|
|
}
|
|
|
|
extern void goBuilderConnect(GtkBuilder *builder, GObject *object,
|
|
gchar *signal_name, gchar *handler_name,
|
|
GObject *connect_object, GConnectFlags flags,
|
|
gpointer user_data);
|
|
|
|
static inline void _gtk_builder_connect_signals_full(GtkBuilder *builder) {
|
|
gtk_builder_connect_signals_full(
|
|
builder, (GtkBuilderConnectFunc)(goBuilderConnect), NULL);
|
|
}
|
|
|
|
extern gboolean goTreeViewSearchEqualFunc(GtkTreeModel *model, gint column,
|
|
gchar *key, GtkTreeIter *iter,
|
|
gpointer data);
|
|
|
|
static inline void _gtk_tree_view_set_search_equal_func(GtkTreeView *tree_view,
|
|
gpointer user_data) {
|
|
gtk_tree_view_set_search_equal_func(
|
|
tree_view, (GtkTreeViewSearchEqualFunc)(goTreeViewSearchEqualFunc),
|
|
user_data, (GDestroyNotify)(gotk3_callbackDelete));
|
|
}
|
|
|
|
extern gboolean goTreeModelFilterVisibleFunc(GtkTreeModel *model,
|
|
GtkTreeIter *iter, gpointer data);
|
|
|
|
static inline void
|
|
_gtk_tree_model_filter_set_visible_func(GtkTreeModelFilter *filter,
|
|
gpointer user_data) {
|
|
gtk_tree_model_filter_set_visible_func(
|
|
filter, (GtkTreeModelFilterVisibleFunc)(goTreeModelFilterVisibleFunc),
|
|
user_data, (GDestroyNotify)(gotk3_callbackDelete));
|
|
}
|
|
|
|
static inline void _gtk_text_buffer_insert_with_tag_by_name(
|
|
GtkTextBuffer *buffer, GtkTextIter *iter, const gchar *text, gint len,
|
|
const gchar *first_tag_name) {
|
|
gtk_text_buffer_insert_with_tags_by_name(buffer, iter, text, len,
|
|
first_tag_name, NULL);
|
|
}
|
|
|
|
static inline void _gtk_text_buffer_insert_with_tag(GtkTextBuffer *buffer,
|
|
GtkTextIter *iter,
|
|
const gchar *text, gint len,
|
|
GtkTextTag *tag) {
|
|
gtk_text_buffer_insert_with_tags(buffer, iter, text, len, tag, NULL);
|
|
}
|
|
|
|
extern gint goTreeSortableSortFunc(GtkTreeModel *model, GtkTreeIter *a,
|
|
GtkTreeIter *b, gpointer data);
|
|
|
|
static inline void _gtk_tree_sortable_set_sort_func(GtkTreeSortable *sortable,
|
|
gint sort_column_id,
|
|
gpointer user_data) {
|
|
gtk_tree_sortable_set_sort_func(
|
|
sortable, sort_column_id,
|
|
(GtkTreeIterCompareFunc)(goTreeSortableSortFunc), user_data, NULL);
|
|
}
|
|
|
|
static inline void
|
|
_gtk_tree_sortable_set_default_sort_func(GtkTreeSortable *sortable,
|
|
gpointer user_data) {
|
|
gtk_tree_sortable_set_default_sort_func(
|
|
sortable, (GtkTreeIterCompareFunc)(goTreeSortableSortFunc), user_data,
|
|
(GDestroyNotify)(gotk3_callbackDelete));
|
|
}
|
|
|
|
static GtkWidget *_gtk_dialog_new_with_buttons(const gchar *title,
|
|
GtkWindow *parent,
|
|
GtkDialogFlags flags,
|
|
const gchar *first_button_text) {
|
|
GtkWidget *w;
|
|
|
|
w = gtk_dialog_new_with_buttons(title, parent, flags, first_button_text,
|
|
NULL);
|
|
return (w);
|
|
}
|
|
|
|
extern gint goTreeModelForeachFunc(GtkTreeModel *model, GtkTreePath *path,
|
|
GtkTreeIter *iter, gpointer data);
|
|
|
|
static inline void _gtk_tree_model_foreach(GtkTreeModel *model,
|
|
gpointer user_data) {
|
|
gtk_tree_model_foreach(
|
|
model, (GtkTreeModelForeachFunc)(goTreeModelForeachFunc), user_data);
|
|
}
|
|
|
|
extern void goTreeSelectionForeachFunc(GtkTreeModel *model, GtkTreePath *path,
|
|
GtkTreeIter *iter, gpointer data);
|
|
|
|
static inline void
|
|
_gtk_tree_selection_selected_foreach(GtkTreeSelection *selection,
|
|
gpointer user_data) {
|
|
gtk_tree_selection_selected_foreach(
|
|
selection, (GtkTreeSelectionForeachFunc)(goTreeSelectionForeachFunc),
|
|
user_data);
|
|
}
|
|
|
|
extern gboolean goTreeSelectionFunc(GtkTreeSelection *selection,
|
|
GtkTreeModel *model, GtkTreePath *path,
|
|
gboolean selected, gpointer data);
|
|
|
|
static inline void
|
|
_gtk_tree_selection_set_select_function(GtkTreeSelection *selection,
|
|
gpointer user_data) {
|
|
gtk_tree_selection_set_select_function(
|
|
|
|
selection, (GtkTreeSelectionFunc)(goTreeSelectionFunc), user_data,
|
|
(GDestroyNotify)(gotk3_callbackDelete));
|
|
}
|