github.com/secoba/wails/v2@v2.6.4/internal/frontend/desktop/linux/window.h (about) 1 #ifndef window_h 2 #define window_h 3 4 #include <JavaScriptCore/JavaScript.h> 5 #include <gtk/gtk.h> 6 #include <webkit2/webkit2.h> 7 #include <stdio.h> 8 #include <limits.h> 9 #include <stdint.h> 10 11 typedef struct DragOptions 12 { 13 void *webview; 14 GtkWindow *mainwindow; 15 } DragOptions; 16 17 typedef struct ResizeOptions 18 { 19 void *webview; 20 GtkWindow *mainwindow; 21 GdkWindowEdge edge; 22 } ResizeOptions; 23 24 typedef struct JSCallback 25 { 26 void *webview; 27 char *script; 28 } JSCallback; 29 30 typedef struct MessageDialogOptions 31 { 32 void *window; 33 char *title; 34 char *message; 35 int messageType; 36 } MessageDialogOptions; 37 38 typedef struct OpenFileDialogOptions 39 { 40 GtkWindow *window; 41 char *title; 42 char *defaultFilename; 43 char *defaultDirectory; 44 int createDirectories; 45 int multipleFiles; 46 int showHiddenFiles; 47 GtkFileChooserAction action; 48 GtkFileFilter **filters; 49 } OpenFileDialogOptions; 50 51 typedef struct RGBAOptions 52 { 53 uint8_t r; 54 uint8_t g; 55 uint8_t b; 56 uint8_t a; 57 void *webview; 58 void *webviewBox; 59 gboolean windowIsTranslucent; 60 } RGBAOptions; 61 62 typedef struct SetTitleArgs 63 { 64 GtkWindow *window; 65 char *title; 66 } SetTitleArgs; 67 68 typedef struct SetPositionArgs 69 { 70 int x; 71 int y; 72 void *window; 73 } SetPositionArgs; 74 75 void ExecuteOnMainThread(void *f, gpointer jscallback); 76 77 GtkWidget *GTKWIDGET(void *pointer); 78 GtkWindow *GTKWINDOW(void *pointer); 79 GtkContainer *GTKCONTAINER(void *pointer); 80 GtkBox *GTKBOX(void *pointer); 81 82 // window 83 ulong SetupInvokeSignal(void *contentManager); 84 85 void SetWindowIcon(GtkWindow *window, const guchar *buf, gsize len); 86 void SetWindowTransparency(GtkWidget *widget); 87 void SetBackgroundColour(void *data); 88 void SetTitle(GtkWindow *window, char *title); 89 void SetPosition(void *window, int x, int y); 90 void SetMinMaxSize(GtkWindow *window, int min_width, int min_height, int max_width, int max_height); 91 void DisableContextMenu(void *webview); 92 void ConnectButtons(void *webview); 93 94 int IsFullscreen(GtkWidget *widget); 95 int IsMaximised(GtkWidget *widget); 96 int IsMinimised(GtkWidget *widget); 97 98 gboolean Center(gpointer data); 99 gboolean Show(gpointer data); 100 gboolean Hide(gpointer data); 101 gboolean Maximise(gpointer data); 102 gboolean UnMaximise(gpointer data); 103 gboolean Minimise(gpointer data); 104 gboolean UnMinimise(gpointer data); 105 gboolean Fullscreen(gpointer data); 106 gboolean UnFullscreen(gpointer data); 107 108 // WebView 109 GtkWidget *SetupWebview(void *contentManager, GtkWindow *window, int hideWindowOnClose, int gpuPolicy); 110 void LoadIndex(void *webview, char *url); 111 void DevtoolsEnabled(void *webview, int enabled, bool showInspector); 112 void ExecuteJS(void *data); 113 114 // Drag 115 void StartDrag(void *webview, GtkWindow *mainwindow); 116 void StartResize(void *webview, GtkWindow *mainwindow, GdkWindowEdge edge); 117 118 // Dialog 119 void MessageDialog(void *data); 120 GtkFileFilter **AllocFileFilterArray(size_t ln); 121 void Opendialog(void *data); 122 123 // Inspector 124 void sendShowInspectorMessage(); 125 void ShowInspector(void *webview); 126 void InstallF12Hotkey(void *window); 127 128 #endif /* window_h */